나는 기본 레이어 1 개, 오버레이 레이어 1 개 및 WFS 레이어 1 개로 구성된 3 개의 레이어가있는지도가 있습니다. 나는이처럼로드 :상단에없는 레이어의 피쳐 선택
map.addLayers([baseLayer, wfsLayer, overlayLayer]);
사용자가지도를 클릭하면 그것은 WFS 층에있는 기능을 선택해야합니다. 그래서 내가 전화 map.addLayers 후 선택 제어를 추가했습니다 : 이것은 위대한 작품을
selectControl = new OpenLayers.Control.SelectFeature(
[wfsLayer],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
map.addControl(selectControl);
selectControl.activate();
클릭하면 내 기능을 선택하세요.
하지만 내 오버레이 레이어가 WFS 레이어 아래에 있으며 맨 위에 있어야합니다. 오버레이 레이어는 채워지지 않은 다각형 레이어입니다. 그래서 추가했습니다.
map.setLayerZIndex(overlayLayer, map.Z_INDEX_BASE[ "Feature" ]+10);
map.addLayers. 괜찮아 보입니다. 내 오버레이 레이어가 이제 내 WFS 레이어 위에 있습니다. 하지만지도를 클릭하면 아무 것도 선택되지 않습니다.
아마도 내가 제대로하지 않을 것입니다. 오버레이 레이어를 맨 위에, WFS 레이어를 선택 가능하게 만들려면 어떻게해야합니까? 크리스토프 의해 바와 같이
[EDIT]
제가
selectControl = new OpenLayers.Control.SelectFeature(
[wfsLayer, overlayLayer],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
시도하지만 오버레이 층이 WMS 층 인 탓, OL 오류 결과.
[편집 # 2]
나는 당신이 당신의 레이어 순서를 변경하는 잘못된 방법을 사용하는 것이 좋습니다 것입니다 https://gis.stackexchange.com/questions/59619/select-features-of-layer-which-is-not-on-top-in-openlayers
SelectFeature 생성자에 여러 개의 레이어를 전달해 봅니다 :'[wfsLayer, overlayLayer] ' –
감사합니다 크리스토퍼. 나는 그것을 시도했지만 다음 오류가 발생했다. TypeError : a.renderer가 정의되지 않았다. overlayLayer는 (GeoServer를 사용하는) GWC 레이어이다. –
GIS 스택 교환 포럼을 시도해 본 적이있다. GWC 레이어를 사용한 적이 없다. –