Какие инструменты для создания полного интерактивного картографического приложения / веб-приложения?

Я тоже хочу создать веб-приложение и смотрю на инструменты, которые мне придется использовать. Я хочу использовать карту в реальном времени, о которой я думаю:

Tilemill для получения.png для создания фона моих карт или получения данных с веб-сайта в shp-файлах для создания слоев для этого в mapnik.

Mapnik Создание слоев с данными, которые я хочу добавить на мою карту.

Mapnik: соедините слои и создайте карту.

TileStache: генерировать плитки для моего приложения.

Openlayers: Показать мою карту с плитками в браузере.

Как только моя карта отобразится, я бы хотел добавить интерактивность. Например, когда вы пересекаете линию или круг (город / событие), тогда он дает вам атрибуты этого объекта.

Но линии и круги будут непосредственно связаны с картой mapnik, поэтому мне нужно добавить немного javascript, чтобы сделать его динамичным, и открыть всплывающее окно. Как мне это сделать? Использование JavaScript-библиотек Openlayer или node.js.

Что вы посоветуете по вопросу / как я хочу использовать эти инструменты?

Большое спасибо!

1 ответ

Решение

У меня похожая ситуация, поэтому я не знаю ответа, но из того, что я смог выяснить, я думаю, что вы на правильном пути.

Я начал с использования подхода Mapbox, который упрощает работу, пока ваши данные статичны. Вы используете Tilemill не только для генерации ваших плиток PNG (как только вы использовали Carto для создания приятного стиля), но также и для импорта ваших наборов данных.

TileMill может экспортировать ваши файлы TileJSON и UTFGrid с плитками PNG, упакованными и готовыми к использованию. Затем Mapbox разместит все эти вещи для вас, и вы можете использовать их библиотеку mapbox.js (расширение Leaflet), чтобы собрать все это вместе в браузере с полной интерактивностью. Открытие всплывающих окон будет чем-то, что вы будете делать в Javascript в браузере - и если вы имеете в виду infoWindows (окно наложения, связанное с точкой карты), то это будет вызов API Leaflet.

Если вы счастливы создавать свои слои и импортировать данные в автономном режиме, этот подход кажется действительно простым и мощным; Mapbox будет даже рендерить плитки, используя несколько наложенных друг на друга слоев - так, например, вы можете видеть свои круги поверх спутникового изображения, объединенного в один PNG.

Проблема действительно возникает, когда ваши данные должны быть активными, и поэтому вы не можете подготовить их заранее в TileMill. Я все еще пытаюсь понять все это, но кажется, что комбинация TileStache и Mapnik сможет предоставить вам необходимые вам файлы TileJSON, GeoJSON и UTFGrid, а также сами плитки. Вы изложили в вопросе.

Возможно, вы также захотите PostGIS и GeoDjango или аналогичные закулисные для хранения и управления вашими живыми данными, соответственно.

Как я уже сказал, я все еще пытаюсь заставить мой полный стек работать, поэтому я не могу поручиться за эти 100%, но если ваши данные собираются заранее, я определенно рекомендую маршрут TileMill для простоты.

Я надеюсь, что это поможет!

Другие вопросы по тегам