2010-04-20 4 views
3

"EPSG : 4326"을 OpenLayers 맵의 투영으로 설정하려고합니다. 그러나 시도 할 때 항상 "EPSG : 900913"이 표시됩니다.OpenLayers에서 투영 변경

function init() { 

    var options = { 
      projection: new OpenLayers.Projection("EPSG:4326") // ignored 
    }; 

    map = new OpenLayers.Map('map', options); 

    var layer = new OpenLayers.Layer.OSM.Osmarender("Osmarender"); 
    map.addLayer(layer); 

    ... 

    alert(map.getProjection()); // returns "EPSG:900913" 

    ... 

} 

기본지도는 공개 거리지도입니다.

투영을 EPSG : 4326으로 ​​어떻게 설정할 수 있습니까?

답변

0

기본 레이어 란 무엇입니까? GMaps 또는 Bing Maps를 그리려고합니까? 그렇다면 OpenLayers는 기본 레이어의 투영과 일치하도록 데이터를 가져 와서 올바르게 정렬 할 수 있습니다.

+0

기본 레이어는 OSM입니다. – deamon

5

milovanderlinden, 당신은 (구글이나 빙지도에 사용 된대로)가 Osmarender 또는 Mapnik 같은 OpenStreetMap에 레이어에 적용 할 수 있습니다 전에 위도/경도 값을 변환 할 수 있습니다

var datapoint = new OpenLayers.LonLat(-71.0, 42.0); 
var proj_1 = new OpenLayers.Projection("EPSG:4326"); 
var proj_2 = new OpenLayers.Projection("EPSG:900913"); 
datapoint.transform(proj_1, proj_2); 
0

이것은 버그가 아니며 기능입니다. Spherical Mercator는 정사각형 픽셀 투영이므로 Openlayers 벡터 기능을지도에 정확하게 배치 할 수 있습니다. 이것은 WSG-84 (EPSG : 4326)의 경우가 아닙니다