【问题标题】:Finding coordinates of a point in OpenLayers在 OpenLayers 中查找点的坐标
【发布时间】:2010-01-29 08:30:17
【问题描述】:

如何在 OpenLayers 中获取地图上特定点的坐标?

【问题讨论】:

  • 你的意思是获取用户点击的点的坐标吗?或者在地图上移动时显示光标的坐标?
  • 是的,但我想在同一张地图上获取之前标记点的所有坐标。可能吗?我正在实施犯罪地图系统。为此,我需要该功能。谢谢。
  • “以前标记的点”是什么意思?我认为您需要更具体地描述完整的用户交互流程,否则将很难为您提供帮助。

标签: gis openlayers


【解决方案1】:

处理地图Click 处理程序上的点击事件。这是您可以在 OpenLayers 邮件列表存档中找到的 onemany 示例代码:

map.events.register('click', map, handleMapClick);

function handleMapClick(e)
{
   var lonlat = map.getLonLatFromViewPortPx(e.xy);
   // use lonlat

   // If you are using OpenStreetMap (etc) tiles and want to convert back 
   // to gps coords add the following line :-
   // lonlat.transform( map.projection,map.displayProjection);

   // Longitude = lonlat.lon
   // Latitude  = lonlat.lat
} 

【讨论】:

  • @mloskot 应该是 map.getLonLatFromViewPortPx(evt.xy);没有?
【解决方案2】:
<html>
 <head>
 <script src="http://openlayers.org/api/OpenLayers.js"></script>
 <script type="text/javascript"> 
    function init(){
      map = new OpenLayers.Map('map');
      base_layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
      "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
      map.addLayer(base_layer);
      map.zoomToMaxExtent();
      map.events.register('click', map, handleMapClick);
    } 

    function handleMapClick(evt)
    {
       var lonlat = map.getLonLatFromViewPortPx(evt.xy);
       // use lonlat
       alert(lonlat);
    } 
 </script>
 </head>
 <body onload="init()">
  Hello Map.<br />
 <div id="map"></div>
 </body>
</html> 

@mloskot 你的回答很好,你对 evt 变量有误。

刚刚添加了 html 标记使其成为工作页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2022-11-28
    • 2011-02-23
    相关资源
    最近更新 更多