绘制标记

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

Map由地图层和矢量层组成。

地图层用于显示地图,矢量层用于添加自定义形状

形状包括标记、线条和多边形。

地图层和矢量层都不是必须的,矢量层可以有多个。

本节任务是在地图上标记出中国的首都北京:

示例:

1、将Map控件的"地图来源"属性设置为"Custom"

2、将Map控件的GetMapTile事件代码设置为:

Dim style As Integer = 8 '地图类型,可选值为610,其中6为卫星图
Dim
size As Integer = 1
Dim
scale As Integer = 1
Dim
server As Integer = Rand.Next(1, 5) '随机使用14号服务器
Dim
scl As Integer = 2 '设置为2可以隐藏地图的文字标注,且分辨率更好
Dim
Language As String = "zh_cn" '中文地图,如果需要英文可设置为"en",我 测试只有style8的时候才支持英文
Dim
url As String
If
style = 7 OrElse style = 8 Then
    url =
"https://webrd0{0}.is.autonavi.com/appmaptile?lang={1}&size={2}&scale={3}&style={4}&x={5}&y={6}&z={7}&scl={8}"
Else

    url =
"https://webst0{0}.is.autonavi.com/appmaptile?lang={1}&size={2}&scale={3}&style={4}&x={5}&y={6}&z={7}&scl={8}"
End
If
e.URI = CExp(url, server, Language, Size, scale, style, e.X, e.Y, e.Z, scl)

3、将窗口的AfterLoad事件代码设置为:

Dim map As GeoMap = e.Form.Controls("Map1").GeoMap
Dim
layer As New VectorLayer() '定义矢量层
layer.LabelVisibility = LabelVisibility.Visible
'标题可见
layer.Style.Stroke.Color = Color.Red
'形状线条为红色
layer.LabelStyle.ForeColor = Color.Green
'标题为绿色
map.Layers.Add(layer)
'将矢量层增加代map控件中

Dim
mark As New VectorPlacemark() '定义一个标记
mark.Marker.Caption =
"北京" '指定标记的标题
mark.Geometry =
New GeoPoint(116.4053, 39.905) '设置标记的位置为北京的经纬度
mark.Marker.Size =
New SizeF(16, 16) '指定标记大小
mark.Marker.Shape = MarkerShape.Star
'标记形状为五角星
mark.Marker.LabelPosition = LabelPosition.Right
'标题显示在标记右边
mark.Style.BackColor = Color.Red
'标记的填充颜色为红色
layer.Items.Add(mark)
'将标记添加到矢量层中 

提示:GeoPoint类似我们平常使用的Point,只不过用GeoPoint指定的位置不是像素位置,而是经纬度位置。


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