Giải pháp ánh xạ web nguồn mở tốt nhất để xử lý hơn 3000 đa giác [đã đóng]


12

Tôi có hơn 3000 đa giác đại diện cho lưu vực sông (18 lưu vực chính). Ở giai đoạn đầu tiên, tất cả 18 lưu vực sẽ hiển thị và danh sách của chúng sẽ được đặt ở thanh bên trái. Nếu bất kỳ người dùng chuột nào trên bản đồ chỉ bật lên sẽ hiển thị tên đầu nguồn. Nếu bất kỳ người dùng nào nhấp vào bất kỳ lưu vực chính nào trên bản đồ, nó sẽ mở ra cửa sổ bật lên với chi tiết. Ở mức thu phóng lớn hơn, tất cả các lưu vực sông sẽ hiển thị.

Tôi đang hỏi lời khuyên của bạn về giải pháp nguồn mở nào là tốt nhất để xử lý số lượng đa giác lớn đó?

Tôi đã suy nghĩ về Tờ rơi hoặc OpenLayers nhưng tôi không biết họ có thể xử lý số lượng lớn đa giác không.

Ngoài ra, bạn có đề nghị lưu trữ chúng trong mysql hay không?


3
Bạn có thể rasterize những đa giác? hoặc có thể sử dụng một máy chủ tính năng như máy chủ địa lý hoặc máy chủ tính năng?
dassouki

Câu trả lời:


12

Tôi sẽ tạo một dịch vụ hình ảnh (lớp raster) và phục vụ nó với Dịch vụ bản đồ web (WMS) . Bằng cách này, bạn có thể sử dụng bất kỳ khung API nào mà bạn cảm thấy thoải mái miễn là nó hỗ trợ WMS ( OpenLayers ). Bạn có thể sử dụng WMS để hiển thị một lớp của tất cả các tính năng đa giác, sau đó sử dụng onFick GetFeatureInfo của WMS để lấy thông tin về đa giác đó.

Nếu vì bất kỳ lý do nào bạn cần dữ liệu vectơ trên bản đồ, bạn có thể tạo nó một cách linh hoạt onclick với dữ liệu phản hồi GetFeatureInfo.


5

Xem TileMill , có thể rasterize tương tác UTFGrid vào tệp MBTiles và lưu trữ nó trên MapBox hoặc triển khai máy chủ MBTiles nguồn mở như TileStache .

Đây là nó với rất nhiều đa giác . Cách tiếp cận này yêu cầu bạn phải rasterize - còn gọi là nướng - gạch, nhưng về cơ bản là cách duy nhất để làm những gì bạn muốn mà không cần tài nguyên máy chủ lớn, ứng dụng tùy chỉnh hoặc bộ trình duyệt rất hạn chế.


Tôi thích ví dụ này. Bạn có thể cho tôi biết làm thế nào tôi có thể raster hóa shapefiles? Trong TileMill? Cảm ơn.
ngược dòng

Đúng, đó là cách phổ biến nhất. Đây là tài liệu về cách thêm chú giải công cụ theo cách đó . Nếu bạn cực kỳ dị ứng với các công cụ GUI và Python / Mapnik pro, thì cũng có một tuyến đường tránh tất cả những điều đó nhưng hơi khó hiểu.
tmcw

2

Sự phụ thuộc quy mô và cơ sở dữ liệu được lập chỉ mục không gian sẽ là chìa khóa cho vấn đề này. Bạn sẽ có thể đại diện cho các lưu vực sông sử dụng ít nhất hai, có thể ba hoặc bốn cấp. Ví dụ: bạn có thể chia dữ liệu thành Major (18), Minor (một số kết hợp của tất cả các lưu vực quy mô trung bình, tất cả đều nằm trong cùng một Major) và Đệ tam (3000 đa giác). Điều này sẽ cung cấp cho bạn ba lớp vector / dịch vụ khác nhau.

Sử dụng phụ thuộc tỷ lệ để chỉ vẽ dịch vụ phù hợp tùy thuộc vào mức thu phóng của người dùng.

Sử dụng cơ sở dữ liệu với lập chỉ mục không gian để đảm bảo các dịch vụ rút ra nhanh chóng và chỉ rút ra phần cần thiết để lấp đầy cửa sổ xem hiện tại.

Ngoài ra, bạn có thể xem xét việc tạo các lát của bản đồ đầu nguồn (một lần nữa, được tạo dựa trên tỷ lệ thích hợp cho từng lớp) và phục vụ chúng theo cách đó.

Rất nhiều câu hỏi đã tồn tại trên trang web này đề xuất các giải pháp nguồn mở phù hợp để sử dụng các chiến lược này.


0

Ngoài TileMill, bạn có thể kiểm tra MangoMap , nó không phải là nguồn mở nhưng hiện tại nó miễn phí và có khả năng xử lý loại dữ liệu này.

[Tuyên bố miễn trừ trách nhiệm: Tôi làm việc với MangoMap, nhưng đang trả lời vì nó phù hợp trong trường hợp này]

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.