# ST_DISTANCE
计算2个地点之间的距离(单位米)。
用于查询地理信息时同时查询出距离信息,例如监管员移动监管时能在手机上显示每个被监管企业离自己有多远。也可以用于当作过滤条件查询某个距离范围内的企业(此时推荐使用函数ST_WITHIN,性能更好)。
PostGIS标准参考:https://postgis.net/docs/manual-3.5/ST_Distance.html
# 语法
ST_DISTANCE(point1, point2)
- point1:必需,地点1的经纬度,支持地理坐标类型字段,或者通过ST_POINT和ST_GEOMFROMTEXT函数将经纬度转换为地理坐标类型。
- point2:必需,地点2的经纬度,支持地理坐标类型字段,或者通过ST_POINT和ST_GEOMFROMTEXT函数将经纬度转换为地理坐标类型。
# 示例
ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT(117.195907, 39.118327))
查询企业列表时将每个企业距离指定的地址的距离一起查询出来ST_DISTANCE([企业信息].[经纬度], ST_POINT(117.195907, 39.118327))
同上,其中经纬度是地理坐标类型字段ST_DISTANCE([企业信息].[经纬度], ST_GEOMFROMTEXT('POINT(117.195907 39.118327')))
同上ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT($location.lng, $location.lat))
查询企业列表时将每个企业距离当前用户所在的地址的距离一起查询出来ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT($location.lng, $location.lat))<300
查询距离我少于300米的企业ST_DISTANCE([企业信息].[经纬度], ST_POINT($location.lng, $location.lat))<300
同上
是否有帮助?
0条评论
评论