我在Postgres DB中有以下表结构:
表区:
id - int, PK
name - varchar
表zone_boundaries
id - int, PK
zone_id - FK (zones.id),
boundary - polygon
表车
id - int, PK
vehicle_registration - varchar
表vehicle_logs
id - int, PK
vehicle_id - int, FK (vehicles.id)
latitude - float
longitude - float
区域边界表中的边界列将zone_id指定的区域的纬度/经度坐标保存为多边形数据。
现在,我想获取其中lat / lng坐标属于select语句中zone_boundaries表中区域边界的所有车辆的数量。我该如何撰写此查询?
答案 0 :(得分:0)
获得这一次通过将是棘手的。首先,您需要转换纬度和经度,例如:
ST_GeometryFromText('POINT(x y)');
之后您可以使用ST_Intersects。无论两个几何是否相交,St_Intersects都将返回。或者,您可以使用ST_CONTAINS。