Làm cách nào tôi có thể bỏ chọn một tính năng trong Openlayers?


9

Tôi có thể xác định các tính năng được chọn trên bản đồ của mình bằng dòng sau:

vector_layer.selectedFeatures

Tôi muốn có thể bỏ chọn tính năng này bằng cách sử dụng chức năng độc lập (không phải là trình xử lý sự kiện). Tôi đã thử sử dụng các chức năng unselect()unselectAll()không thành công và không thể tìm thấy bất kỳ ví dụ nào về phương pháp này.

Tôi biết rằng nhấp vào đối tượng được chọn có thể được sử dụng để unselect. Trong trường hợp này tôi muốn một giải pháp lập trình.


Đó không hoàn toàn là những gì tôi đang cố gắng thực hiện nhưng unSelectcác vấn đề được thảo luận ở đây: github.com/openlayers/openlayers/pull/486
djq

cảm ơn những lời đề nghị Tôi đã thấy những điều này và cố gắng điều chỉnh chúng cho lớp lưới của tôi. Theo như tôi có thể nói, mọi ví dụ để chọn các tính năng liên quan đến việc tạo các tính năng trước tiên. Tôi chưa (chưa) thấy một ví dụ hoạt động trong đó một lớp hiện có được tải và người dùng chọn các tính năng từ lớp này. Tôi bắt đầu nghĩ rằng selectFeature chỉ hoạt động cho các vectơ mà bạn tạo khi đang di chuyển. Tôi hy vọng điều này không đúng nếu không tôi gặp rắc rối. ;)
user2378729

Câu trả lời:


13

OpenLayers 2: Bạn có thể bỏ chọn các tính năng với bỏ chọn và bỏ chọn Tất cả các phương pháp của điều khiển SelectFeature:

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();

Nếu điều này không hoạt động, có thể có lỗi trong mã của bạn.

Đây là câu đố: http://jsfiddle.net/dHxnh/1/


Tôi không thấy điều đó trong tài liệu ... nhưng nó hoạt động!
pakman

1

Openlayers bỏ chọn đối tượng - phương pháp khác nhau

Sử dụng phím shift để chọn nhiều tính năng. Sử dụng phím ctrl để chuyển đổi lựa chọn trên các tính năng một lần. Lưu ý: tùy chọn "clickout" không có hiệu lực khi "hover" được chọn

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

bấm vào để bỏ chọn các tính năng


1
Xin lỗi, nên đã thêm từ lập trình. Tôi muốn unselectsử dụng một chức năng, không phải là một nhấp chuột.
djq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.