lizhihong
路人甲
路人甲
  • 注册日期2006-03-27
  • 发帖数8
  • QQ
  • 铜币149枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1319回复:2

[求助]求坐标

楼主#
更多 发布于:2007-05-26 19:19
一般情况下,用鼠标点击的当前位置在地图上的坐标x,y ,用Set pPoint = m_pScreenDisplay.DisplayTransformation.ToMapPoint(x, y) 可求出pPoint.x , pPoint.y;我的问题是如果知道pPoint.x , pPoint.y,如何求x,y。谢谢!
喜欢0 评分0
whmwxhanshan123
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-05-26 19:43
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
diligentpig
路人甲
路人甲
  • 注册日期2005-09-14
  • 发帖数47
  • QQ
  • 铜币277枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-05-27 11:47
首先需要当前地图所采用的坐标单位,需要在声明里定义变量sMapUnits<FONT face=宋体>:</FONT><BR>Private sMapUnits As String '<FONT face=宋体>显示坐标用</FONT><BR><BR><FONT face=宋体>然后在</FONT>MapControl1_OnMapReplaced<FONT face=宋体>里增加代码:</FONT><BR>Dim pMapUnits As esriUnits<BR>pMapUnits = MapControl1.MapUnits<BR>  <BR>  IfpMapUnits = esriCentimeters Then<BR>   sMapUnits = "Centimeters"<BR>ElseIf pMapUnits = esriDecimalDegrees Then<BR>   sMapUnits = "Decimal Degrees"<BR>ElseIf pMapUnits = esriDecimeters Then<BR>   sMapUnits = "Decimeters"<BR>ElseIf pMapUnits = esriFeet Then<BR>   sMapUnits = "Feet"<BR>ElseIf pMapUnits = esriInches Then<BR>   sMapUnits = "Inches"<BR>ElseIf pMapUnits = esriKilometers Then<BR>   sMapUnits = "Kilometers"<BR>ElseIf pMapUnits = esriMeters Then<BR>   sMapUnits = "Meters"<BR>ElseIf pMapUnits = esriMiles Then<BR>   sMapUnits = "Miles"<BR>ElseIf pMapUnits = esriMillimeters Then<BR>   sMapUnits = "Millimeters"<BR>ElseIf pMapUnits = esriNauticalMiles Then<BR>   sMapUnits = "NauticalMiles"<BR>ElseIf pMapUnits = esriPoints Then<BR>   sMapUnits = "Points"<BR>ElseIf pMapUnits = esriUnknownUnits Then<BR>   sMapUnits = "Unknown"<BR>ElseIf pMapUnits = esriYards Then<BR>   sMapUnits = "Yards"<BR>  EndIf<BR><BR><FONT face=宋体>接下来只要在</FONT>MapControl1_OnMouseMove<FONT face=宋体>里添加代码:</FONT><BR>Private Sub MapControl1_OnMouseMove(ByValbutton As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long, ByValmapX As Double, ByVal mapY As Double)<BR>'<FONT face=宋体>状态栏上显示坐标</FONT>  <BR>StatusBar1.Panels(2).Text =Format(mapX, ".00") ; " , " ; Format(mapY, ".00") ; " " ;sMapUnits  <BR>End Sub<BR>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部