Яке найкраще рішення з веб-картою відкритим кодом для обробки 3000+ полігонів [закрито]


12

У мене є 3000+ багатокутників, які представляють вододіли (18 основних вододілів). На першому етапі будуть показані всі 18 вододілів, а їхній список буде розміщений на лівій бічній панелі. Якщо будь-який користувач мишею над спливаючою картою відобразить ім'я вододілу. Якщо хто-небудь користувач натисне на будь-який великий вододіл на карті, він відкриється спливаюче вікно з деталями. При більшому масштабі показуватимуться всі вододіли.

Я прошу вашої поради, яке рішення з відкритим кодом є найкращим для обробки такої великої кількості багатокутників?

Я думав про Leaflet або OpenLayers, але не знаю, чи можуть вони обробити велику кількість багатокутників.

Також ви пропонуєте зберігати їх у mysql чи?


3
Чи можете ви растровувати ці багатокутники? чи, можливо, використовувати сервер функцій, такий геосервер чи сервер функцій?
dassouki

Відповіді:


12

Я б створив службу зображень (растровий шар) і обслуговував би її за допомогою сервісу веб-карт (WMS) . Таким чином, ви можете використовувати будь-яку структуру API, з якою вам комфортно, якщо він підтримує WMS ( це робить OpenLayers ). Ви можете використовувати WMS для показу шару всіх функцій багатокутника, потім використовуйте onclick GetFeatureInfo WMS для отримання інформації про цей полігон.

Якщо з будь-якої причини вам потрібні векторні дані на карті, ви можете створити їх динамічно onclick з даними відповіді GetFeatureInfo.


5

Див. Розділ TileMill , який може розповсюдити взаємодію UTFGrid у файлі MBTiles та розмістити його на MapBox або на сервері з відкритим вихідним кодом MBTiles, наприклад TileStache .

Ось це з великою кількістю та багато полігонів . Такий підхід вимагає від вас розкрити плитки, які також називаються для випічки, але, по суті, це єдиний спосіб робити те, що ви хочете, не маючи масивних серверних ресурсів, спеціального додатка або дуже обмеженого набору браузерів.


Мені подобається цей приклад. Чи можете ви сказати мені, як я можу розпорошити файли форм? У TileMill? Дякую.
проти потоку

Так, це найпоширеніший спосіб. Ось документація щодо додавання підказок таким чином . Якщо ви супер-алергічні на інструменти графічного інтерфейсу та програму Python / Mapnik Pro, також існує маршрут, який дозволяє уникнути всього цього, але є трохи загадковим.
tmcw

2

Залежність від масштабу та база даних, що індексуються простором, будуть ключовими в цьому питанні. Ви повинні мати можливість представляти вододіли, використовуючи принаймні два, можливо, три чи чотири рівні. Наприклад, ви можете розділити дані на майор (18), мінор (деяка комбінація всіх середніх вододілів, що належать до одного майора), і третинний (3000 багатокутників). Це дасть вам три різних векторних шари / послуги.

Використовуйте залежність від масштабу, щоб намалювати лише відповідну послугу залежно від рівня масштабування користувача.

Використовуйте базу даних з просторовою індексацією, щоб забезпечити швидке малювання послуг, і намалюйте лише ту частину, яка необхідна для заповнення поточного вікна перегляду.

Крім того, ви можете розглянути можливість створення плиток вододільних карт (знову ж, створених на основі відповідних масштабів для кожного шару) і таким чином їх обслуговувати.

На цьому сайті вже існує багато питань, які рекомендують відповідні рішення з відкритим кодом для використання цих стратегій.


0

Окрім TileMill, ви можете перевірити MangoMap , це не з відкритим кодом, але він наразі безкоштовний і може обробляти цей тип даних.

[Відмова від відповідальності: я працюю з MangoMap, але відповідаю, тому що це доречно в цьому випадку]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.