Каков наиболее распространенный способ отображения геоданных из Postgis на Leaflet?


18

Например, в моей базе данных есть несколько точек с географическими координатами. Я хочу отобразить их на слое Leaflet JS. Какие инструменты я должен использовать? Может быть, есть какой-то API ...


Добро пожаловать в ГИС ЮВ? Ваш вопрос действительно "Как отображать баллы PostGIS с помощью Leaflet?" Если да, можете ли вы отредактировать свой вопрос, чтобы прояснить его, потому что я не уверен, что вы подразумеваете под «инструментами» в этом контексте.
PolyGeo

Ответы:


22

Чтобы получить данные из базы данных в веб-браузер, вам необходимо использовать серверный скрипт. Это может быть сложно сделать, потому что вы должны знать об уязвимостях, таких как SQL-инъекция. Важно отметить, что вы должны использовать параметризованные запросы и гарантировать, что пользователь вашей базы данных непривилегирован, имея доступ только для чтения к тем таблицам, которые вы хотите сделать общедоступными.

Самый простой способ получить доступ API к базе данных - это использовать немного программного обеспечения, такого как GeoServer, но это очень большое приложение, которое можно использовать для решения потенциально небольших проблем.

Другим методом может быть периодический вывод серверным сценарием данных в файл GeoJSON, в зависимости от того, как часто ваши данные изменяются, это может быть ежечасно, ежедневно, еженедельно. имейте в виду, что ваш веб-сайт может не работать во время записи файла.

Другой метод - использовать PHP или Python в качестве CGI-скрипта для создания собственного API.

Примеры:

Если у вас есть GeoJSON, будь то динамический или статический, вы можете очень легко загрузить его, используя Leaflet: http://leafletjs.com/examples/geojson.html .


1
Спасибо за ответ. Я склонен использовать GeoJSON. Теперь я хочу использовать CSV-файл вместо Postgis, преобразовать его в geoJSON и затем отобразить данные с помощью Leaflet.
Джон Смит

1
используйте тогда ogr2ogr для чтения csv, чтобы легко конвертировать в geoJSON
Jorge Sanz

1
Если ваши данные слишком велики и слишком долго загружаются как JSON, взгляните на TopoJSON. github.com/mbostock/topojson
Алекс Лейт,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.