|
阅读:1966回复:7
[求助]在状态条上显示当前位置的经纬度的问题(AE+VB)
<P>在状态条上显示鼠标所在点的经纬度,下面方法不能够正确显示,还需要哪些设置,请求帮助。</P>
<P>Private pInMapUnits As esriUnits<BR>Private pOutMapUnits As esriUnits<BR>Private mapXOut As Double<BR>Private mapYOut As Double<BR>Private pUnitConverter As IUnitConverter</P> <P>Private Sub Form_Load()</P> <P> Dim filepath As String<BR> filepath = App.Path ; "\ShapeFile\"<BR> <BR> 'MapControl1.AddShapeFile filepath, "test.shp"<BR> MapControl1.AddShapeFile filepath, "test_Project.shp"<BR> pInMapUnits = MapControl1.MapUnits<BR> pOutMapUnits = esriDecimalDegrees<BR> <BR> With StatusBar1<BR> .Panels.Add 2<BR> .Panels(1).Width = Form1.Width / 5<BR> .Panels(2).Width = Form1.Width * 4 / 5<BR> .Panels(2).Style = sbrText<BR> .Panels(2).Alignment = sbrCenter<BR> End With<BR> <BR> Set pUnitConverter = New UnitConverter <BR>End Sub</P> <P>Private Sub MapControl1_OnMouseMove(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long, ByVal mapX As Double, ByVal mapY As Double)<BR> <BR> mapXOut = pUnitConverter.ConvertUnits(mapX, pInMapUnits, pOutMapUnits)<BR> mapYOut = pUnitConverter.ConvertUnits(mapY, pInMapUnits, pOutMapUnits)<BR> StatusBar1.Panels(2).Text = "经度:" ; Str(Format(mapXOut, ".0000")) ; " " ; "纬度:" ; Str(Format(mapYOut, ".0000"))<BR> <BR>End Sub<BR></P> |
|
|
1楼#
发布于:2005-11-03 09:40
<P>应该已经够了吧!无非一个坐标的转换?偏差在什么地方?</P>
|
|
|
2楼#
发布于:2005-11-03 14:28
纬度转换正确,经度本来应该是108度左右,结果却是6度多!!
|
|
|
3楼#
发布于:2005-11-03 17:39
是不是你的数据的参考坐标本身就是有偏差的?如果这样的话就不奇怪了!呵呵!
|
|
|
4楼#
发布于:2005-11-03 22:16
帮顶一下,解决了没有?
|
|
|
|
5楼#
发布于:2005-11-04 08:46
<P>我感觉数据没有问题,因为在ArcMap里面将Display Units设置为 Decimal Degresss时,显示正确。</P>
|
|
|
6楼#
发布于:2006-06-06 19:46
<P>你的问题解决了吗,我遇到同样的问题了</P>
<P>纬度转换的正确但精度的不对了,是不是精度,纬度的转化方法不一样?</P> |
|
|
7楼#
发布于:2006-06-14 08:35
呵,我也遇到同样的问题,帮着顶,难道问题出现在偏移500KM方面
|
|
|