Openlayers에서 기능을 선택 해제하려면 어떻게해야합니까?


9

다음 줄을 사용하여지도에서 선택한 지형지 ​​물을 식별 할 수 있습니다.

vector_layer.selectedFeatures

이벤트 핸들러가 아닌 독립형 기능을 사용하여이 기능을 선택 취소하고 싶습니다. 나는 기능을 사용 해봤 unselect()unselectAll()실패를하고이 방법의 예를 찾을 수 없습니다.

선택한 개체를 클릭하면 사용할 수 있음을 알고 있습니다 unselect. 이 경우 프로그래밍 방식의 솔루션을 원합니다.


그것은 내가하려는 일이 아니지만 unSelect여기에서 문제가 논의됩니다 : github.com/openlayers/openlayers/pull/486
djq

제안 해 주셔서 감사합니다. 나는 이것을 보았고 그리드 레이어에 맞게 조정하려고했습니다. 내가 알 수있는 한, 기능을 선택하는 모든 예는 먼저 기능을 만드는 것과 관련이 있습니다. 기존 레이어가로드되고 사용자 가이 레이어에서 기능을 선택하는 실제 예제를 보지 못했습니다. selectFeature는 사용자가 생성 한 벡터에만 작동한다고 생각하기 시작했습니다. 이것이 사실이 아니거나 다른 문제가 있기를 바랍니다. ;)
user2378729

답변:


13

OpenLayers 2 : SelectFeature 컨트롤의 unselect 및 unselectAll 메소드를 사용하여 기능을 선택 취소 할 수 있습니다.

selectControl = new OpenLayers.Control.SelectFeature(vectorLayer);
...
map.addControls([selectControl]);
selectControl.activate();

// unselect any specific feature...
selectControl.unselect(vectorLayer.features[0]);
// ...or all features
selectControl.unselectAll();

이것이 작동하지 않으면 코드에 버그가있을 수 있습니다.

여기 바이올린이 있습니다 : http://jsfiddle.net/dHxnh/1/


나는 문서에서 그것을 보지 못했지만 ... 작동합니다!
pakman

1

객체를 선택 해제하는 Openlayers-다양한 방법

Shift 키를 사용하여 여러 기능을 선택하십시오. Ctrl 키를 사용하여 기능 선택을 한 번에 하나씩 토글하십시오. 참고 : "호버"를 선택하면 "클릭"옵션이 적용되지 않습니다

http://openlayers.org/dev/examples/select-feature.html

기능을 선택 해제하려면 클릭


1
프로그래밍 방식이라는 단어를 추가해야합니다. unselect클릭이 아닌 기능 을 사용하고 싶습니다 .
djq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.