当前位置:   article > 正文

postgresql 搜索指定距离内的记录 按近到远排序 并返回距离_pgsql查询数据在x,y坐标点附近的数据

pgsql查询数据在x,y坐标点附近的数据

脚本


  1. CREATE TABLE mylocation (
  2. id SERIAL PRIMARY KEY,
  3. geom GEOMETRY(Point, 4326),
  4. name VARCHAR(128),
  5. x double precision,
  6. y double precision
  7. );
  8. INSERT INTO mylocation (geom,name,x,y) VALUES (
  9. ST_GeomFromText('POINT(0.0001 0)', 4326),'zhangsan',0.0001,0
  10. );
  11. INSERT INTO mylocation (geom,name,x,y) VALUES (
  12. ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
  13. );
  14. INSERT INTO mylocation (geom,name,x,y) VALUES (
  15. ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
  16. );
  17. INSERT INTO mylocation (geom,name,x,y) VALUES (
  18. ST_GeomFromText('POINT(0.1 0)', 4326),'zhangsan',0.1,0
  19. );
  20. SELECT id, name,geom,x,y, ST_DistanceSphere(
  21. geom,
  22. ST_GeometryFromText('POINT(0 0)')) distance
  23. FROM mylocation
  24. WHERE ST_DWithin(
  25. geom,
  26. ST_GeomFromText('POINT(0 0)', 4326),
  27. 0.001
  28. )ORDER BY distance asc;;

查询语句 下面距离单位为m

  1. SELECT id, name,geom,x,y, ST_DistanceSphere(
  2. geom,
  3. ST_GeometryFromText('POINT(0 0)')) distance
  4. FROM mylocation
  5. WHERE ST_DWithin(
  6. geom::geography,
  7. ST_GeomFromText('POINT(0 0)', 4326)::geography,
  8. 1000
  9. ) ORDER BY distance asc;


搜索结果






声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/506036
推荐阅读
相关标签
  

闽ICP备14008679号