高德地图开发

高德地图提供了强大的二次开发功能。

高德地图开发文档:

https://lbs.amap.com/api/webservice/summary

高德地图的开发功能很多,本节仅提供一个小例子,其余的请自行研究。

示例

本节内容可以参考CaseStudy目录下的文件"地图.Table"的示例三十三。

本示例是要获取天安门广场附近的新能源车充电站:

如何通过高德地图获取兴趣点,可以看看:

https://lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch

根据上述说明,可以写出窗口的AfterLoad事件代码:

Dim map As GeoMap = e.Form.Controls("Map1").GeoMap
Dim
layer As New VectorLayer()
layer.LabelVisibility = LabelVisibility.AutoHide
layer.LabelStyle.ForeColor = Color.AliceBlue
'标题文本颜色
layer.LabelStyle.BackColor = Color.RosyBrown
'标题字体颜色
map.Layers.Add(layer)

Dim
CustomShape As MarkImageShape = map.CreateImageShape("charge.png")
Dim page_size As Integer = 20 '每次()获取20
Dim
page_num As Integer = 1 '页号
Dim
key As String = "d64d0f56a5e54a33497f7b79f1a43f9e" '请替换为自己的appkey
While
True
   
Dim url As String = "https://restapi.amap.com/v5/place/around?location=116.3974,39.9184&radius=10000&types=011100&page_size={0}&page_num={1}&key={2}"
    url = CExp(url, page_size, page_num, key)
   
Dim http As New HttpClient(url)
   
Dim jo As JObject = JObject.Parse(http.GetData())
   
If jo("status") <> "1" Then '如果获取失败
       
Exit While
   
End If
   
For Each jt As JToken In jo("pois")
       
Dim xy() As String = jt("location").ToString().Split(",")
       
Dim mark As New VectorPlacemark()
       
Dim caption As String = jt("name").ToString()
       
If caption.IndexOf("(") > 0 Then '去掉标题中括号部分的内容,要不太长了
            caption = caption.Substring(0, caption.IndexOf(
"("))
       
End If
        mark.Marker.Caption = caption
        mark.Marker.LabelPosition = LabelPosition.Bottom
        mark.LabelWidth = 200
'标题宽度
        mark.Geometry =
New GeoPoint(CDbl(xy(0)), CDbl(xy(1)))
        mark.Marker.Size =
New SizeF(32, 32)
        mark.Marker.Shape = MarkerShape.Custom
        mark.Marker.CustomShape = CustomShape
        layer.Items.Add(mark)
   
Next
    page_num = page_num + 1

End
While

开发要点:

一般先在线运行高德文档中的示例,得到其返回的json文本,将json文本复制到编辑工具(例如vscode),排版后分析其结构,分析清楚后再回到Foxtable写代码。


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