2010-04-09 7 views
3

나는 성공적으로 수행 할 수 있습니다 점에OpenLayers 계획

point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); 

: (미터) 구글의 형식으로되어 지점에

point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); 

을,하지만 난 반대를 수행 할 때 즉, 4326 (정규 lat/lon 형식)에 있습니다. 몇 가지 문제가 있습니다.

변환 할 때 음수 값이 NaN (숫자가 아님)이되는 것처럼 보입니다. 내가 이해하지 못하는 반대의 변형에 대해 뭔가가 있습니까?

편집 : 음수 값이없는 경우 좌표가 떨어져 보인다. 화면에 정사각형을 그려 좌표를 가져온 다음 해당 좌표를 데이터베이스에 저장하고 나중에로드합니다. 나는 아프리카의 팁 (양의 좌표) 근처에 사각형을 그릴 수 있으며, 하중이 가해지면 대서양의 아프리카 정상 부근에 위치합니다. 나는 확실히 뭔가 잘못 ....하고 있어요

편집 : 특히 http://pastie.org/911524

:

var navControl = new OpenLayers.Control.Navigation(); 
       map = new OpenLayers.Map('map', { 

       // restrictedExtent: bounds.clone(), 


       }); 
     //actually draws the map 
     layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", { 
     displayOutsideMaxExtent: false, 
     wrapDateLine: true 
     //numZoomLevels: 10 
     }); 
+0

특정 좌표를 게시 할 수 있습니까? 지도에서 사용하는 투영법은 무엇입니까? – amercader

답변

2

아, 내가 그것을 알아 냈 :이 내지도를 초기화하는 방법입니다 여기에 내 코드입니다 :

내 코드에서 어느 시점에서 나는 위도와 경도를 혼란스럽게 만들었습니다.

2

모든 좌표 변환 기능을 실제로 사용하려면 proj4j http://proj4js.org/ 전체 좌표 변환 프레임 워크를 사용하여 openlayers를 향상시켜야합니다.

+0

OpenLayers는 투영 변환을 위해 Proj4JS가 필요합니다. 그러나 명시 적으로 포함시켜야합니다. – winwaed

+2

완전히 사실이 아닙니다. EPSG : 4326 및 EPSG : 900913의 변환은 Openlayers 스크립트에 포함 된 proj4js의 작은 하위 집합에 기본적으로 포함되어 있습니다. – milovanderlinden