2012-01-24 4 views
10

이 주제를 검색해야하는 힌트를 찾으려고했지만 아무 것도 발견하지 못했습니다. 많은 시간을 보냈습니다.지도의 현재 뷰포트를 OpenLayers 밖으로 도형, 경계 상자 또는 wkt로 가져 오는 방법은 무엇입니까?

또한 현재 뷰포트의 현재 좌표를 OpenLayers 맵에서 가져 와서 현재 뷰포트의 현재 경계 상자에있는 벡터 만 추가하려고합니다. OpenLayers 2의

+0

ol3 참조 http://stackoverflow.com/questions/22206570/how-do-bounds-work-in-openlayers-3 –

답변

18

:

Map.getExtent() 

... 당신은 다음 방법으로 임의의 수의 위도/경도 좌표를 얻을하는 데 사용할 수있는 경계, 반환합니다 이상적으로 http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds

를, 당신 ' d 벡터를 도형 객체로 바꾸고 Bounds.intersectBounds()를 사용하여 Map.getExtent()를 확인하여 현재 뷰포트에 있는지 확인합니다. OpenLayers 3

:

ol.Map.getView().calculateExtent(map.getSize()) 

...이 정도의 바운딩 박스를 나타내는 좌표의 배열을 반환한다.

+3

고마워요! 그건 잘된거야. 나는 이것을 다음과 같이 사용한다 :'this.map.getExtent(). toGeometry(). toString()'이것은'POLYGON ((- 8852235.9398912 -2760000,11337764.060109 -2760000,11337764.060109 11370000, -8852235.9398912 11370000, -8852235.9398912 -2760000))' –

+0

저는 GIS에 익숙하지 않지만 -8852235 -2760000이라는 숫자는 위도/경도 값처럼 보이지 않습니까? 내가지도의 범위를 얻을 때 나는 비슷한 결과를 얻는다. 위도/경도 값은 -90/90 및 -180/180 범위에 있습니까? –

+0

이 대답은 내가 그 문제를 해결하는 데 도움이 : http://stackoverflow.com/a/2607145/1359765 –

관련 문제