绘制标记
本节内容可以参考CaseStudy目录下的文件"地图.Table"的示例一。
Map由地图层和矢量层组成。
地图层用于显示地图,矢量层用于添加自定义形状
形状包括标记、线条和多边形。
地图层和矢量层都不是必须的,矢量层可以有多个。
本节任务是在地图上标记出中国的首都北京:

示例:
1、将Map控件的"地图来源"属性设置为"Custom"
2、将Map控件的GetMapTile事件代码设置为:
Dim
style
As
Integer
= 8
'地图类型,可选值为6到10,其中6为卫星图
Dim
size
As
Integer
= 1
Dim
scale
As
Integer
= 1
Dim
server
As
Integer
= Rand.Next(1, 5)
'随机使用1到4号服务器
Dim
scl
As
Integer
= 2
'设置为2可以隐藏地图的文字标注,且分辨率更好
Dim
Language
As
String
=
"zh_cn"
'中文地图,如果需要英文可设置为"en",我
测试只有style为8的时候才支持英文
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指定的位置不是像素位置,而是经纬度位置。