1

伙计们...

我正在寻找一个我认为很容易解决的问题,但我就是找不到答案。

我正在使用 OpenStreetLayers 开发 SaaS。我习惯了 Google API,但我想学习 OSM。

如何将我的坐标系更改为十进制度?我的坐标系显示如下:-4363377.97 | -1756393.59 在 OpenLayers.Control.MousePosition。我无法使用 Gmaps Latlon 将我的地图“居中”,例如“center: new 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>

请给点光明,对我的英语感到抱歉。

谢谢大家...

4

1 回答 1

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。可能还有其他方法...

于 2013-02-22T15:30:47.233 回答