>source

레이어를 그룹화하고 그룹화된 모든 레이어에 모양을 표시하는 데 가장 적합한 범위로 확대하는 쉬운 방법(레이어 범위를 별도로 가져오고 계산을 수행하는 것 외에)이 있습니까?

  • 답변 # 1

    이것은 나를 위해 일했습니다.

    code:

    var allLayers= map.getLayers();
    var length= allLayers.getLength();
    var layerArray= ['Layer1', 'Layer2', ..., 'LayerN'];
    var extent= ol.extent.createEmpty();
    for (var i= 0; i < length; i++) {
        var existingLayer= allLayers.item(i);
        for (var j= 0; j < layerArray.length; j++) {
            if (existingLayer.get('title')== layerArray[j]) {
                ol.extent.extend(extent,existingLayer.getSource().getExtent());
            }
        }
    }
    map.getView().fit(extent, map.getSize());
    

    예:

    두 개의 레이어를 추가하고 그 중 하나의 레이어를 가리켰습니다.

    API를 호출한 후 내 보기가 업데이트되고 두 레이어 모두에 초점이 맞춰졌습니다.

  • 답변 # 2

    해결책:

    bounds= @get('siblingsLayer').getDataExtent()
    bounds.extend(@get('vectorLayer').getDataExtent())
    bounds.extend(@get('parentLayer').getDataExtent())
    @get('map').zoomToExtent(bounds)
    

  • 이전 Python 스크립트는 수동으로 실행되지만 crontab에서 '리소스 교착 상태 방지' 오류가 발생합니다.
  • 다음 java : jzy3d 빌더는 Eclipse에서 오류를 해결할 수 없습니다.