Các thuật toán phù hợp để đơn giản hóa các đa giác isochrone


8

Tôi đang tìm kiếm một thuật toán để đơn giản hóa isochrones được tạo bằng dữ liệu OSM.

Chúng thường có đặc điểm là có nhiều "lỗ hổng" nhỏ chủ yếu là do thiếu dữ liệu OSM nhưng cũng thường có "đảo" nhỏ do sử dụng phương tiện giao thông như tàu điện ngầm. Tôi đã thử một số công cụ cho việc này nhưng tất cả đều quá tích cực trong việc thu hẹp không gian - quan trọng nhất là xóa các hòn đảo. Khả năng tiếp cận các đảo giao thông công cộng này là rất quan trọng.

Vì vậy, thay vì tập trung vào các công cụ, tôi muốn lùi lại một chút và hỏi liệu có bất kỳ thuật toán cụ thể nào tốt hay không phù hợp với nhiệm vụ như vậy không? tức là tích cực trong việc loại bỏ các lỗ nhưng bảo thủ về việc không loại bỏ các đảo.

Các isochrones bắt đầu cuộc sống ở định dạng GeoJSON. Cuối cùng chúng sẽ được nhập vào PostGIS.


Để tính toán isochrones đơn giản hơn, bạn có thể quan tâm đến api.oalley.fr . Thuật toán tạo ra các vùng isochrone không có lỗ. Nó có thể được coi là một perk hoặc là một lỗ hổng, nhưng nếu bạn cần các khu vực đơn giản hơn, bạn có thể quan tâm. Lưu ý: Tôi là một trong những nhà phát triển, cho đến nay các tính toán cần cải thiện và điều này chủ yếu là một thử nghiệm, nhưng chúng tôi đang để mọi người chơi với nó miễn phí.
Overdrivr

Câu trả lời:


2

Có lẽ giải quyết là bắt đầu từ đầu?

Cách nào bạn đang tạo ra isochrones?

Tôi đang sử dụng pg_routing và nó trả về tập hợp các cạnh có thể truy cập trong thời gian được chỉ định thay vì đa giác để tôi có thể vẽ đa giác từ dữ liệu này theo cách tôi muốn - Tôi có thể sử dụng st_ConvexHull, st_ConcaveHull, st_Buffer ...

Chức năng đầu tiên giống như đặt một cái gì đó trong quả bóng cao su, thứ hai giống như hút không khí từ quả bóng này và chức năng này có thể nghĩ rằng bạn đang tìm kiếm vì nó sẽ trả về hình học đại diện cho một hình học có thể lõm trong tất cả các hình học trong tập hợp và có tham số ngăn lỗ trong hình học trả về ...

Nhưng tôi vẫn không chắc liệu đó có phải là cách tốt hay không - bạn sẽ nhận được một hình học không đúng, bởi vì bạn không thể nhảy khỏi tàu trong khi nó đang chạy. Có lẽ bạn phải sử dụng ST_Ex thầmRing để thoát ra và sau đó st_simplify để đơn giản hóa hình học?

Vui lòng thêm nhận xét sẽ hướng dẫn tôi đúng cách nếu bạn nghĩ câu trả lời này có thể hữu ích để tôi có thể chỉnh sửa lại cho chính xác.


Tôi đang sử dụng OpenTripPlanner để tạo isochrones. pgRouting dường như không có hỗ trợ thời gian biểu GTFS / giao thông công cộng phù hợp, vì vậy đó là lý do tại sao tôi đã đi với OTP. Ý tưởng của tôi là để OTP tạo ra với độ chính xác cao, họ áp dụng làm mịn tùy chỉnh của riêng tôi cho nó. Tôi đồng ý rằng "nhảy khỏi tàu trong khi nó đang chạy" sẽ là một vấn đề nghiêm trọng với máy bay không người lái - do đó tại sao các đảo cần phải ở đó.
rgareth4
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.