坐标转换
地图坐标使用的是经纬度,而屏幕坐标使用的是像素。
用代码绘制流程图的时候,最好是基于像素来定位各种形状,否则工作量要增加很多。
为此我们给Map控件提供了两组方法:
将像素坐标转换为经纬度坐标
ToGeoPoint(point)
ToGeoPointsString(pointsString)
point: Point类型,要转换的单个屏幕像素坐标
pointsString:字符串型,指定要转换的多个屏幕像素坐标,用逗号分隔,奇数位置为水平坐标,偶数位置为垂直坐标。
将经纬度坐标转换为像素坐标
ToScreenPoint(point)
ToScreenPointsString(pointsString)
point: GeoPoint类型,要转换的单个经纬度坐标
pointsString:字符串型,指定要转换的多个经纬度坐标,用逗号分隔,奇数位置为经度,偶数位置为维度。
示例
例如希望绘制一个宽200像素,高100像素的四边形,四边形水平位置为60像素,垂直位置为80像素:
Dim
map
As
GeoMap = e.Form.Controls("Map1").GeoMap
Dim
layer
As
VectorLayer = map.Layers(0)
Dim
p1
As
New
Point(60, 80)
Dim
p2
As
New
Point(260, 180)
Dim
gp1
As
GeoPoint = map.ToGeoPoint(p1)
'将屏幕坐标转换为经纬度
Dim
gp2
As
GeoPoint = map.ToGeoPoint(p2)
Dim
rect
As
VectorPolygon = map.CreateRectangle(gp1, gp2)
layer.Items.Add(rect)
绘制结果:
