OpenLayers中的十进制度

时间:2013-02-20 19:25:55

标签: openlayers coordinate-systems

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>

请给我一些启示,对我的英语抱歉。

大家好......

1 个答案:

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