Sửa đổi điểm bắt đầu / kết thúc của LineString và duy trì kết nối trong OpenLayers


8

Tôi đang phát triển một ứng dụng nơi người dùng có thể xem và chỉnh sửa mạng lưới đường phố của một thành phố. Các đường phố được trình bày dưới dạng các tính năng trên một lớp vectơ và người dùng phải có thể sửa đổi các thành phần (cả thuộc tính và hình học - là LineString - của tính năng). Việc chỉnh sửa hình học được giới hạn trong việc kéo các điểm cuối của LineString, ít nhất là cho đến thời điểm hiện tại.

Mẹo nhỏ là các điểm cuối mới phải giao nhau với hình dạng hiện tại của tính năng, để người dùng không thể kéo đường để bắt đầu từ bên ngoài lưới đường. Ngoài ra, sửa đổi hình học sẽ ảnh hưởng đến hình học lân cận, nếu có. Đó là, nếu một con đường khác bắt đầu khi một điểm kết thúc, cả hai sẽ có điểm bắt đầu / điểm kết thúc thay đổi.

Tôi không cho rằng OpenLayers hỗ trợ việc này ngay lập tức vì vậy tôi nên bắt đầu thực hiện điều này như thế nào?


bạn đã thử sử dụng snapping với openlayers?
Aragon

Tôi tin rằng người ta chỉ có thể nắm bắt các yếu tố khác, không phải là "chính nó". Tuy nhiên, tôi cho rằng có thể tạm thời sao chép tính năng này sang lớp vectơ khác, sử dụng tính năng chụp nhanh để sao chép bản sao vào tính năng ban đầu và sau đó sao chép tính năng đã sửa đổi vào lớp ban đầu. Điều đó sẽ không giải quyết vấn đề với việc sửa đổi hình học lân cận.
mrLite

Đó là một câu hỏi hay. Upvote.
Magno C

Tôi đã từng sử dụng một trình soạn thảo độc quyền được mã hóa tùy chỉnh có thể làm điều này và nó đã sử dụng các thư viện nguồn mở, những cái mà tôi không biết, thật không may. Mặc dù vậy, nó rất tiện dụng, được sử dụng bởi một công ty có tên GDT
lewis

Câu trả lời:


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.