我是新来的博士后。我有一张表格,里面有多边形区域的边界。我想在谷歌地图上显示多边形。每次更改google地图视图边界时,应用程序都应该在PostGIS中查询该地图视图中的任何多边形。有人能引导我开始吗?

最佳答案

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中的数据加载到google maps中,请查看Postgis中的AS_GeoJSON函数,该函数允许您直接从Postgis创建GeoJSON,然后可以直接加载到google maps中,请参见以下示例:load GeoJSON in Google Maps
编辑:
您可以在使用-s开关导入数据时设置SRID。强烈建议在创建列时显式设置列的SRID,或在创建列后运行UpdateGeometrySRID更新,因为这有助于增强完整性,并启用从一个坐标系到另一个坐标系的转换。
一旦您在指定的坐标系中拥有数据,您还可以使用ST_Transfrom从一个坐标系转换到另一个坐标系,例如从4326到3857(Google Maps tiles的投影米)。

09-30 14:36
查看更多