【发布时间】: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