我是 PostGIS 新手。我有一张表格,其中包含多边形类型的区域边界。我想在谷歌地图上显示多边形。每次更改 google map View 边界时,应用程序都应向 PostGIS 查询该 map View 中的任何多边形。有人可以指导我开始吗?
最佳答案
Select * from Polygons where ST_Intersects(
ST_MakeBox2D(ST_MakePoint(lon1, lat1), ST_MakePoint(lon2, lat2)),
geom);
假设您有一个名为 Polygons 的表,并且您的几何字段名为 geom。您还需要确保在几何字段上有一个空间索引:
Create index ix_spatial_geom on Polygons using gist (geom);
如果您计划将数据从 Postgis 加载到谷歌地图,请查看 AS_GeoJSON Postgis 中的函数,它允许您直接从 Postgis 创建 GeoJSON,然后您可以直接将其加载到 Google map 中,请参见此示例:load GeoJSON in Google Maps
编辑:
您可以在使用 -s 开关导入数据时设置 SRID。强烈建议在创建列时或通过使用 UpdateGeometrySRID 运行更新时在列上显式设置 SRID。之后,因为这有助于加强完整性,并实现从一个坐标系到另一个坐标系的转换。
在指定坐标系中获得数据后,您还可以使用 ST_Transfrom即时从一个坐标系转换到另一个坐标系,例如从 4326 到 3857(Google map 图 block 的投影米)。
关于postgresql - 在 PostGIS 中查询 map View 边界内的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472980/