在谷歌地图上绘制多边形并查询位于该区域的项目

时间:2018-05-23 13:22:27

标签: google-maps cross-browser gis

我有一个基于网络的仪表板,其中填充了7天内车辆运动的lon-lat信息。在这种情况下,地图图层是Google地图,车辆运动的数据存储在PostgreSQL中。用户想要做的是在特定区域上绘制多边形,并触发将显示已经通过该区域的所有车辆的查询。我已经有了地图和所有车辆lon lat数据,有没有一种方法可以使用json或javascript执行此操作而无需将多边形上传到数据库?

我知道如果我将多边形上传到数据库中,Postgress可以这样做。为了安全和数据管理,我不想将多边形上传到PostgreSQL。我想绘制多边形并使用JavaScript触发查询。

1 个答案:

答案 0 :(得分:0)

只需使用像

这样的静态几何体
SELECT *
FROM <points_table> AS pt
WHERE ST_Intersects(pt.geom, <static_geometry);

其中<static_geometry>将是

之一

并将传输的输入坐标解析为函数(注意每个函数的不同坐标顺序)。不需要上传,因为这些函数只接受字符串格式化的输入,采取通常的预防措施SQL injections 几何输出具有等效函数(ST_As<Format>,例如ST_AsGeoJSON)。

如何最好地收集,传输和解析从客户端到服务器到数据库的多边形坐标取决于您的设置。