关于示例文件
打开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方法从行政区域表获取即可。