Wie werden Geodaten aus Postgis am häufigsten in Leaflet angezeigt?
18
Zum Beispiel habe ich in meiner Datenbank einige Punkte mit geografischen Koordinaten. Ich möchte sie auf der Ebene von Leaflet JS anzeigen. Welche Instrumente soll ich verwenden? Vielleicht gibt es eine API ...
Willkommen bei der GIS SE? Ist Ihre Frage wirklich "Wie werden PostGIS-Punkte mit Leaflet angezeigt?" Wenn ja, können Sie Ihre Frage bearbeiten, um dies klarer zu machen, da ich nicht sicher bin, was Sie in diesem Zusammenhang unter "Instrumenten" verstehen.
PolyGeo
Antworten:
22
Um Daten aus einer Datenbank in einen Webbrowser zu übertragen, müssen Sie ein serverseitiges Skript verwenden. Dies kann schwierig sein, da Sie sich über Sicherheitslücken wie SQL Injection im Klaren sein müssen. Zu beachten ist vor allem, dass Sie parametrisierte Abfragen verwenden und sicherstellen sollten, dass Ihr Datenbankbenutzer nicht privilegiert ist und nur Lesezugriff auf die Tabellen hat, die öffentlich sein sollen.
Der einfache Weg, um API-Zugriff auf eine Datenbank zu erhalten, besteht darin, ein bisschen Software wie GeoServer zu verwenden. Dies ist jedoch eine sehr große Anwendung für potenziell kleine Probleme.
Eine andere Methode wäre, dass ein serverseitiges Skript die Daten in regelmäßigen Abständen in eine GeoJSON-Datei ausgibt. Dies hängt davon ab, wie oft sich Ihre Daten ändern. Dies kann stündlich, täglich oder wöchentlich erfolgen. Denken Sie daran, dass Ihre Website möglicherweise nicht funktioniert, während die Datei geschrieben wird.
Eine andere Methode besteht darin, PHP oder Python als CGI-Skript zu verwenden, um Ihre eigene API zu erstellen.
Danke für die Antwort. Ich neige dazu, GeoJSON zu verwenden. Jetzt möchte ich CSV-Datei anstelle von Postgis verwenden, es in geoJSON konvertieren und dann Daten mit Leaflet anzeigen.
John Smith
1
Verwenden Sie dann ogr2ogr Lesung csv , um leicht zu geoJSON zu konvertieren
Jorge Sanz
1
Wenn Ihre Daten zu groß sind und das Laden als JSON zu lange dauert, werfen Sie einen Blick auf TopoJSON. github.com/mbostock/topojson
Antworten:
Um Daten aus einer Datenbank in einen Webbrowser zu übertragen, müssen Sie ein serverseitiges Skript verwenden. Dies kann schwierig sein, da Sie sich über Sicherheitslücken wie SQL Injection im Klaren sein müssen. Zu beachten ist vor allem, dass Sie parametrisierte Abfragen verwenden und sicherstellen sollten, dass Ihr Datenbankbenutzer nicht privilegiert ist und nur Lesezugriff auf die Tabellen hat, die öffentlich sein sollen.
Der einfache Weg, um API-Zugriff auf eine Datenbank zu erhalten, besteht darin, ein bisschen Software wie GeoServer zu verwenden. Dies ist jedoch eine sehr große Anwendung für potenziell kleine Probleme.
Eine andere Methode wäre, dass ein serverseitiges Skript die Daten in regelmäßigen Abständen in eine GeoJSON-Datei ausgibt. Dies hängt davon ab, wie oft sich Ihre Daten ändern. Dies kann stündlich, täglich oder wöchentlich erfolgen. Denken Sie daran, dass Ihre Website möglicherweise nicht funktioniert, während die Datei geschrieben wird.
Eine andere Methode besteht darin, PHP oder Python als CGI-Skript zu verwenden, um Ihre eigene API zu erstellen.
Beispiele:
Sobald Sie GeoJSON haben, egal ob dynamisch oder statisch, können Sie es ganz einfach mit Leaflet laden: http://leafletjs.com/examples/geojson.html .
quelle
Sie können dieses Prospekt-Plugin ausprobieren
quelle