【问题标题】:Convert lonlat to GPS used values将 lonlat 转换为 GPS 使用值
【发布时间】:2012-05-22 14:46:09
【问题描述】:

我有以下代码。如何将 lonlat 值转换为以度为单位的 GPS 使用值?

更新:我不确定我使用了正确的词汇,但目前lonlat 等于“2698.98978 1232.8998”。我想转换成学位,例如'41.2987 2.1989'。

lonlat 是一个变量。请在代码中查看。

<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>

【问题讨论】:

  • 这是你要找的东西吗:andrew.hedges.name/experiments/haversine
  • 我不确定我是否使用了正确的词汇,但目前 lonlat 等于“2698.98978 1232.8998”。我想转换成学位,例如'41.2987 2.1989'.
  • 我不熟悉 Open Layers,但我在 documentation 中读到 LonLat.lon 是“地图单位中的 x 轴坐标。如果您的地图处于地理投影中,则此将是经度。否则,它将是您的地图单位中地图位置的 x 坐标。”因此,您正在寻找一种将地图单位转换为度数的方法,或者使您的地图“在地理投影中”。
  • @David Gorsline:我知道这一点。但是当我尝试 ll.transform(map.projection,map.displayProjection); alert(ll.lon);,输出是一样的。

标签: php javascript map gps openstreetmap


【解决方案1】:

你不应该使用getLonLatFromViewPortPx,而应该使用getLonLatFromPixel这样的方法:

var lonlat = map.getLonLatFromPixel(evt.xy);

这将为您提供正确的坐标,无需任何变换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多