Các dòng tổng hợp dựa trên khoảng cách giữa các phân đoạn


12

Tôi có một đồ cơ sở VectorTile mà tôi đang tối ưu hóa, (làm việc để giảm kích thước của các ô riêng lẻ), phần chính của kích thước ô là dữ liệu đường (hình học và thuộc tính). Tôi đang làm việc để đơn giản hóa các hình học đường riêng lẻ dựa trên Mức thu phóng và tổng hợp các đường dựa trên các mức thu phóng.

Các đường được lưu trữ trong bảng Postgis (bảng riêng cho từng mức thu phóng) và tôi muốn tổng hợp các đường dựa trên mức thu phóng mà chúng sẽ được hiển thị tại. Ví dụ: Trong bảng Thu phóng cấp 5, tôi muốn tổng hợp các đường nằm trong một khoảng cách nhất định với nhau và tạo một đường duy nhất cho các đoạn đường: nhập mô tả hình ảnh ở đây

Vì không thể tạo ra các đường riêng lẻ ở mức thu phóng đó: nhập mô tả hình ảnh ở đây

Làm cách nào tôi có thể tổng hợp các hình học đường dựa trên khoảng cách giữa các đoạn đường?

PS: Tôi đang làm việc trên PostGIS và QGIS trên Linux, nhưng tôi sẵn sàng cho các giải pháp sử dụng bất kỳ nền tảng hoặc công nghệ nguồn mở nào


Các đường có ID chung không, ví dụ: hai làn ở mức thu phóng 5 trên A50 được biểu thị bằng hai đường, nhưng ở cấp 4 bởi một lin và tất cả chúng đều có "A50" làm thuộc tính của chúng?
AnserGIS

Chúng được đại diện bởi hai dòng ở tất cả các mức thu phóng. Đường cao tốc và đường cao tốc sẽ có thuộc tính chung như "M-2" cho Đường cao tốc.
Hasan Mustafa

Câu trả lời:


5

Bạn có thể thử tìm kiếm tùy chọn hệ điều hành này, Skeletron , nó:

tổng quát hóa các bộ sưu tập các dòng đến mức thu phóng hình cầu cụ thể và độ chính xác pixel cụ thể, sử dụng bộ đệm đa giác và sơ đồ voronoi

Nó dựa trên một bài báo năm 1996 của Alnoor Ladak và Roberto B. Martinez, "Dẫn xuất tự động của đường có độ chính xác cao Centrelines Thiessen Polygons Technique"

Có một số phụ thuộc cần thiết:

Các phụ thuộc bắt buộc:
- nhị phân qhull ( http://www.qhull.org )
- shapely 1.2+ ( http://pypi.python.org/pypi/Shapely )
- pyproj ( http://code.google.com.vn/p / pyproj )
- networkx 1.5+ ( http://networkx.lanl.gov )
- StreetNames 0.1+ ( https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names )

Lưu ý: Đây là một mô hình / công cụ cũ hơn có thể được áp dụng, giống như một tài liệu tham khảo để bạn khám phá.


1
Tôi nghĩ rằng skeletron có thể là cách để đi, nhưng câu trả lời của bạn chỉ là một bản sao của tệp readme và liên kết đến trang web esri đã chết. Đây là một liên kết để hiển thị những gì nó làm cho bản đồ: kartographie.geo.tu-dresden.de/doads/ica-gen/workshop2004/ Lỗi . Trông nó thực sự tuyệt vời nhưng khi tôi thử sử dụng nó, tôi đã không biết cách sử dụng nó. Tôi đã không tìm thấy một tài liệu nào ngoại trừ một số hối lộ với lệnh sử dụng hoặc setup.py --help ... Nếu ai đó giải thích cách sử dụng lib đó, tôi sẽ đưa tiền thưởng cho anh ta.
Hugo Roussaffa - GeoDatup

Ngoài ra, nó sử dụng các đường OSM như trong đầu vào như tôi có thể thấy, tôi muốn một giải pháp có thể hoạt động trên bất kỳ loại đường nào. Tuy nhiên, tôi thực sự yêu thích khoa học đằng sau nó, cũng thích áp dụng điều này vào các kịch bản khác.
Hasan Mustafa

Tôi đã cập nhật bài đăng của mình để phản ánh ý kiến ​​của bạn, tôi đánh giá cao phản hồi.
sao Sa hoàng

4

ArcGIS là đơn giản nhất nếu nó hoàn toàn là một tùy chọn. Tôi biết OP chỉ định HĐH nhưng tôi đề cập đến điều này vì các tùy chọn HĐH trông không hữu ích lắm so với: http://resource.arcgis.com/en/help/main/10.1/index.html#/Merge_Divided_Roads/00700000000w000000 /

Các câu trả lời cho câu hỏi này cung cấp một số tùy chọn Nguồn mở: Làm cách nào tôi có thể hợp nhất / thu gọn các tuyến đường gần đó và song song (ví dụ: đường hai chiều) thành một đường duy nhất?

Nếu bạn viết mã, bạn có thể tính toán vị trí tọa độ trung bình trên cơ sở đỉnh, nếu không thì:

  1. đệm các đường với tùy chọn "hợp nhất tất cả" trên đầu ra.
  2. Lấy đường trung tâm của đa giác
  3. Tách các dòng tại các điểm nối với JUMP Split Lines tại Giao lộ của các dòng khác
  4. Spatial Tham gia các thuộc tính trở lại

Dường như không có một hệ điều hành tốt tương đương với công cụ 'Đường đa giác đến trung tâm' của ArcGIS. Tôi có thể đề nghị:

a. Tạo sơ đồ voronoi và lấy bộ xương.
b. Tạo một raster khoảng cách Euclide và trích xuất giá trị trung tâm và chuyển đổi thành một dòng

... Có lẽ một số người khác là tốt.

Cuối cùng, tùy thuộc vào quy mô và ứng dụng .. cũng có thể đáng để xóa một trong hai dòng - liệu sự thiếu chính xác có quan trọng không?


Tùy chọn ArcGIS có vẻ tốt, tôi sẽ cung cấp cho nó một shot, nhưng tôi thích một giải pháp hệ điều hành hơn. Tính toán vị trí tọa độ trung bình trên cơ sở đỉnh, là chiến lược dự phòng của tôi. Tôi sẽ thử tất cả các phương pháp bạn đã liệt kê và xem chúng có hiệu quả với tôi không, cảm ơn!
Hasan Mustafa

Công cụ ArcGIS, 'Hợp nhất đường phân chia (Bản đồ)', chính xác là những gì tôi đang tìm kiếm, nhưng tất cả quá trình xử lý tôi đang làm là trên Linux, sử dụng Postgres và QGIS, để sử dụng công cụ tôi sẽ cần chuyển sang cửa sổ .
Hasan Mustafa
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.