关于示例文件

打开CaseStyudy目录下的文件示例文件"地图.table",本章所有的示例都位于该文件中。

该文件包括五个表,分别是省、市、行政区域、全球GDP、景区和涂鸦。

省、市两个表包括了这两级行政区域的人口和GDP数据,数据来自网络,所以数据不完整,也不一定准确。

市表比省表多了经度和维度两列,通常表示该市行政中心所在地的经度和维度,还多了一个逻辑型的省会列,用于判断该市是否为省会城市。

行政区域这个表包括中国有所县级以上行政区域的经纬度数据,数据来于阿里云(与高德地图同源)。

行政区域表是本章使用的主要示例数据,该表包括以下列:

说明
adcode 行政区域代码,对应省、市两个表的省代码、市代码。
adcode有6位数字,两位表示省,两位表示市,两位表示县,例如440825,表示广东省(44)湛江市(08)吴川县(25)。
adcode其实就是身份证号码的前六位。
name 行政区域的名称
centerX 行政中心的经度,行政中心通常指政府所在地
centerY 行政中心的纬度,行政中心通常指政府所在地
centroidX 该区域地理中心的经度
centroidY 该区域地理中心的纬度
level 行政级别,1为省级,2为市级,3为县级
childrenNum 下级行政区域数量
parent 上级行政区域的代码
parentLevel 上级行政区域的级别
geometry 该行政区域边界的经纬度数据,经纬度数据用逗号分隔,每两个数据为一组,奇数为经度,偶数为纬度。
行政区域可能存在飞地或海岛,所以一个行政区域在地图上可能由多个多边形组成,各多边形的经纬度数据用符号vblf隔开。


本章的示例,有的使用在线地图,有的使用离线地图,大多数离线地图是基于行政区域表的数据绘制的。

为了提高效率,我给市这个表增加了经度列和维度列,这两列的数据分别来自行政区域表的centerX和centerY列。

市表的经度和纬度,是通过在命令窗口执行下述代码从行政区域表获取的:

For Each dr As DataRow In DataTables("").DataRows
   
Dim xr As DataRow = DataTables("行政区域").Find("adcode = '" & dr("代码") & "'")
   
If xr IsNot Nothing Then
        dr(
"经度") = xr("centerX")
        dr(
"纬度") = xr("centroidY")
   
End If
Next

你当然可以从市表删除这两列,需要经纬度数据的时候,用Find方法从行政区域表获取即可。


本页地址:http://www.foxtable.com/webhelp/topics/6142.htm