OpenLayers에서 모든 오버레이 범위까지 확대


10

Openlayers에서 다음과 같이 모든 레이어의 경계 상자를 확대 할 수 있습니다.

map.zoomToExtent();

단일 레이어의 경계 상자를 확대 할 수도 있습니다.

map.zoomToExtent(layer_name.getDataExtent());

기본 레이어를 제외한 모든 레이어의 범위까지 쉽게 확대 / 축소 할 수 있습니까? 다시 말해 모든 오버레이의 범위를 보여줍니다.

답변:


6
  1. 모든 레이어에 대한 루프
    1. 기본 레이어 건너 뛰기 [필요에 따라]
    2. bounds.extend (...)를 사용하여 모든 것을 포함하는 경계 객체 API 를 빌드하십시오.
  2. 결과 범위 API로 확대

extends ()가 인수로 전달 된 것보다 작은 범위에서 호출 된 경우에만 작동하기 때문에 이것이 작동하지 않는다고 생각합니다.
pakman

OpenLayer API 3.x를 사용하여 동일한 결과를 얻을 수있는 방법
imdadhusen

@imdadhusen 왜 문서를 찾아 보지 않겠습니까? 같은 방법. 같은 물건. 다른 네임 스페이스. openlayers.org/ko/v3.3.0/apidoc/ol.extent.html#extend
Vadim

1

map.restrictedExtent 를 수정하고 map.zoomToExtent (map.restrictedExtent)를 호출 하는 것은 어떻 습니까?


그건 그냥 문제를 움직일 것입니다 ... 제한된 확장을 만들기 위해 오버레이의 경계 상자를 어떻게 찾을 수 있습니까?
Mr_Chimp

ZoomToMaxExtent () 시도해보십시오-더 큰 경우 아마도 기본 레이어 범위로 확대됩니까? 그것이 작동하지 않으면 각 ovelays 레이어의 범위를 검색하고 limitedExtent를 수정하기 위해 가장 큰 레이어를 유지해야합니다.
simo

ZoomToMaxExtend ()를 시도하고 기본 레이어로 확대 / 축소합니다. 나는 내 질문에 이것을 언급했지만 다시 읽을 때 분명하지 않습니다. 가장 큰 경계 상자를 유지하는 것이 반드시 작동하지는 않습니다. 즉 두 레이어가 겹치지 않는 경우입니다. 어떻게 든 각 레이어의 경계 상자를 결합한 다음 결과 개체의 경계 상자를
가져와야한다고 생각

그게 다야! 그다지 어렵지는 않지만 ... 나는 당신에게 동의하지만, 그러한 방법이 아직 존재하지 않는다는 사실은 놀랍습니다 (또는 우리는 ;-).)
simo

잘만되면 우리는 무엇인가 놓쳤다! 지금은 질문을 열어 두겠습니다. 만약을 위해서!
Mr_Chimp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.