# ST_DISTANCE

计算2个地点之间的距离(单位米)。

用于查询地理信息时同时查询出距离信息,例如监管员移动监管时能在手机上显示每个被监管企业离自己有多远。也可以用于当作过滤条件查询某个距离范围内的企业(此时推荐使用函数ST_WITHIN,性能更好)。

PostGIS标准参考:https://postgis.net/docs/manual-3.5/ST_Distance.html

# 语法

ST_DISTANCE(point1, point2)

  • point1:必需,地点1的经纬度,支持地理坐标类型字段,或者通过ST_POINTST_GEOMFROMTEXT函数将经纬度转换为地理坐标类型。
  • point2:必需,地点2的经纬度,支持地理坐标类型字段,或者通过ST_POINTST_GEOMFROMTEXT函数将经纬度转换为地理坐标类型。

# 示例

  1. ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT(117.195907, 39.118327)) 查询企业列表时将每个企业距离指定的地址的距离一起查询出来
  2. ST_DISTANCE([企业信息].[经纬度], ST_POINT(117.195907, 39.118327)) 同上,其中经纬度是地理坐标类型字段
  3. ST_DISTANCE([企业信息].[经纬度], ST_GEOMFROMTEXT('POINT(117.195907 39.118327'))) 同上
  4. ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT($location.lng, $location.lat)) 查询企业列表时将每个企业距离当前用户所在的地址的距离一起查询出来
  5. ST_DISTANCE(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT($location.lng, $location.lat))<300 查询距离我少于300米的企业
  6. ST_DISTANCE([企业信息].[经纬度], ST_POINT($location.lng, $location.lat))<300 同上
是否有帮助?
0条评论
评论