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

Draw polygon on google map and query item located in that area

我有一个基于网络的仪表板,其中填充了 7 天内车辆运动的经纬度信息。本例中的地图层是 Google 地图,车辆移动的数据存储在 PostgreSQL 中。用户想要做的是在特定区域上绘制一个多边形,并触发一个查询,该查询将显示所有经过该区域的车辆。我已经有了地图和所有车辆的经纬度数据,有没有一种方法可以使用 json 或 javascript 而不将多边形上传到数据库?

我知道如果我将多边形上传到数据库中,Postgress 可以执行此操作。为了安全和数据管理,我不想将多边形上传到 PostgreSQL。我想绘制多边形并使用 JavaScript.

触发查询

只需使用像

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

其中 <static_geometry> 将是

之一

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

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