关于SHP文件

本示例内容可以参考CaseStudy目录下的文件"地图.Table"的示例二十六,该示例使用SHP文件绘制除了中国的所有湖泊:


 

SHP文件是另一种使用极为广泛的地理信息文件。

它不是一个单一的文件,而是一组文件。一个完整的Shapefile至少包含三个同名但扩展名不同的文件:

 

Foxtable只使用其中shp和dbf文件,如前所言,shp定义了形状,dbf定义了形状的附加信息。

如果想知道dbf文件附加了什么信息,可以将其导入到Foxtable查看。

提示:

Foxtable对GeoJson的支持更完善,通常我建议将SHP文件转换为GeoJson格式使用,可以使用QGIS转换,也可是使用在线转换工具:

https://mapshaper.org/

如果没有特别要求,Foxtable读取SHP文件和读取KML文件一样简单,不同的只是方法名变成了CreateRecordsFromSHP:


Dim map As GeoMap = e.Form.Controls("Map1").GeoMap
Dim layer As New VectorLayer()
map.Layers.Add(layer)
For Each kr As VectorRecord In map.CreateRecordsFromSHP(shp文件, dbf文件)
    layer.Items.Add(kr.VectorItem)
Next

如果要根据形状类型进行细节设置,代码一般为:

 

Dim map As GeoMap = e.Form.Controls("Map1").GeoMap
Dim layer As New VectorLayer()
map.Layers.Add(layer)
For Each kr As VectorRecord In map.CreateRecordsFromSHP(shp文件, dbf文件)
    layer.Items.Add(kr.VectorItem)
    If TypeOf kr.VectorItem Is VectorPlacemark Then
        Dim mark As VectorPlacemark = kr.VectorItem
        '设置标记的属性:
    ElseIf TypeOf kr.VectorItem Is VectorPolyline Then
        Dim line As VectorPolyline = kr.VectorItem
        '设置线条属性:
    ElseIf TypeOf kr.VectorItem Is VectorPolygon Then
        Dim polygon As VectorPolygon = kr.VectorItem
        '设置多变形属性:
    End If
Next


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