坐标转换

地图坐标使用的是经纬度,而屏幕坐标使用的是像素。

用代码绘制流程图的时候,最好是基于像素来定位各种形状,否则工作量要增加很多。

为此我们给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)

绘制结果:


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