Sup人......
我正在寻找一个我认为很容易解决的问题,但我找不到答案。
我正在使用OpenStreetLayers开发SaaS。我已经习惯了Google API,但我想学习OSM。
如何将坐标系更改为十进制度? 我的坐标系显示如下:-4363377.97 | OpenLayers.Control.MousePosition中的-1756393.59。 我不能用Gmaps Latlon“居中”我的地图,比如“中心:新的OpenLayers.LonLat(-46.645203,-23.553917)”
这是我的代码:
<div id="map" class="mapa"></div>
<script src="OpenLayers.js"></script>
<script src="http://maps.google.com/maps/api/js?v=3.2&sensor=false"></script>
<script>
var map;
function init() {
map = new OpenLayers.Map('map', {
layers: [
new OpenLayers.Layer.Google(
"Google Streets",
{numZoomLevels: 20}
),
],
center: new OpenLayers.LonLat(-23.553917, -46.645203)
,zoom: 10,
}
);
map.addControl(
new OpenLayers.Control.MousePosition({
div:document.getElementById("coor"),
prefix: 'EPSG:3857 coordinates:',
separator: ' | ',
numDigits: 2,
emptyString: 'Mouse fora do mapa.'
})
);
/* map.addControl(new OpenLayers.Control.MousePosition( {id: "coor", formatOutput: formatLonlats} ));
}
</script>
请给我一些启示,对我的英语抱歉。
大家好......
答案 0 :(得分:0)
您可以使用变换和两个投影从度数转换为十进制:
var lonlat = new OpenLayers.LonLat(lon, lat).transform(projection1,projection2);
请参阅:http://dev.openlayers.org/docs/files/OpenLayers/BaseTypes/LonLat-js.html#OpenLayers.LonLat.transform
通常的预测是EPSG:4326和EPSG:3857。 可能还有其他方式......