在Leaflet上显示Postgis地理数据的最常见方法是什么?


18

例如,在我的数据库中,有些点具有地理坐标。我想在Leaflet JS层上显示它们。我应该使用哪些乐器?也许有一些API ...


欢迎使用GIS SE?您的问题是否真的是“如何使用Leaflet显示PostGIS点?” 如果是这样,您是否可以编辑您的问题以使其更清楚,因为在这种情况下我不确定您所说的“仪器”是什么意思。
PolyGeo

Answers:


22

为了将数据库中的数据获取到Web浏览器中,您需要使用服务器端脚本。这样做可能很棘手,因为您需要意识到漏洞,例如SQL注入。需要注意的一些最佳做法是,您应该使用参数化查询,并确保您的数据库用户没有特权,并且仅具有对要公开的表的读取权限。

获得对数据库的API访问权限的简单方法是使用一些软件,例如GeoServer,但这是一个很大的应用程序,可以解决潜在的小问题。

另一种方法是让服务器端脚本定期将数据转储到GeoJSON文件中,具体取决于您的数据更改频率,可以是每小时,每天,每周。请记住,在写入文件时您的网站可能无法正常运行。

另一种方法是使用PHP或Python作为CGI脚本来构建自己的API。

例子:

一旦有了GeoJSON(无论是动态的还是静态的),您都可以使用Leaflet轻松加载它:http : //leafletjs.com/examples/geojson.html


1
感谢您的回答。我倾向于使用GeoJSON。现在,我想使用CSV文件而不是Postgis,将其转换为geoJSON,然后使用Leaflet显示数据。
约翰·史密斯,

1
然后使用ogr2​​ogr读取csv轻松转换为geoJSON
Jorge Sanz

1
如果您的数据太大,并且无法以太长时间加载为JSON,请查看TopoJSON。github.com/mbostock/topojson
Alex Leith

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.