Jaki jest najczęstszy sposób wyświetlania geodanych z Postgis na Ulotce?
18
Na przykład w mojej bazie danych mam kilka punktów o współrzędnych geograficznych. Chcę wyświetlić je na warstwie Ulotki JS. Z jakich instrumentów powinienem korzystać? Może jest jakiś API ...
Witamy w GIS SE? Czy twoje pytanie naprawdę brzmi „Jak wyświetlić punkty PostGIS za pomocą Ulotki?” Jeśli tak, czy możesz edytować swoje pytanie, aby było bardziej zrozumiałe, ponieważ nie jestem pewien, co rozumiesz przez „instrumenty” w tym kontekście.
PolyGeo
Odpowiedzi:
22
Aby pobrać dane z bazy danych do przeglądarki internetowej, musisz użyć skryptu po stronie serwera. Może to być trudne, ponieważ musisz zdawać sobie sprawę z luk, takich jak wstrzyknięcie SQL. Jedną z najlepszych praktyk, na którą należy zwrócić uwagę, jest to, że powinieneś używać sparametryzowanych zapytań i upewnić się, że użytkownik bazy danych nie jest uprzywilejowany, mając dostęp tylko do odczytu do tabel, które chcesz upubliczniać.
Najłatwiejszym sposobem uzyskania dostępu API do bazy danych jest użycie trochę oprogramowania takiego jak GeoServer, ale jest to bardzo duża aplikacja do wykorzystania w przypadku potencjalnie małego problemu.
Inną metodą może być okresowe zrzucanie skryptu po stronie serwera do pliku GeoJSON, w zależności od częstotliwości zmian danych, może to być co godzinę, codziennie, co tydzień. pamiętaj, że Twoja witryna może nie działać podczas zapisywania pliku.
Inną metodą jest użycie PHP lub Pythona jako skryptu CGI do budowy własnego interfejsu API.
Dziękuję za odpowiedź. Skłaniam się do korzystania z GeoJSON. Teraz chcę użyć pliku CSV zamiast Postgis, przekonwertować go na geoJSON, a następnie wyświetlić dane za pomocą Ulotki.
John Smith,
1
użyj następnie ogr2ogr, czytając csv, aby łatwo przekonwertować na geoJSON
Jorge Sanz
1
Jeśli Twoje dane są zbyt duże i ładowanie ich jako JSON trwa zbyt długo, spójrz na TopoJSON. github.com/mbostock/topojson
Odpowiedzi:
Aby pobrać dane z bazy danych do przeglądarki internetowej, musisz użyć skryptu po stronie serwera. Może to być trudne, ponieważ musisz zdawać sobie sprawę z luk, takich jak wstrzyknięcie SQL. Jedną z najlepszych praktyk, na którą należy zwrócić uwagę, jest to, że powinieneś używać sparametryzowanych zapytań i upewnić się, że użytkownik bazy danych nie jest uprzywilejowany, mając dostęp tylko do odczytu do tabel, które chcesz upubliczniać.
Najłatwiejszym sposobem uzyskania dostępu API do bazy danych jest użycie trochę oprogramowania takiego jak GeoServer, ale jest to bardzo duża aplikacja do wykorzystania w przypadku potencjalnie małego problemu.
Inną metodą może być okresowe zrzucanie skryptu po stronie serwera do pliku GeoJSON, w zależności od częstotliwości zmian danych, może to być co godzinę, codziennie, co tydzień. pamiętaj, że Twoja witryna może nie działać podczas zapisywania pliku.
Inną metodą jest użycie PHP lub Pythona jako skryptu CGI do budowy własnego interfejsu API.
Przykłady:
Gdy już masz GeoJSON, dynamiczny lub statyczny, możesz go bardzo łatwo załadować za pomocą Ulotki: http://leafletjs.com/examples/geojson.html .
źródło
Możesz wypróbować tę wtyczkę ulotki
źródło