Каков наиболее распространенный способ отображения геоданных из 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
Алекс Лейт,