我在我的应用程序中使用PostGis进行基于位置的计算。在表格中,我有一个名为'location'的地理类型的列(Point(lon lat))...就像表中存在的行数一样。 我想通过一个点(Point(lon lat)),并检查这一点(我通过)和所有行中的位置列之间的距离....如果距离小于5米....它将返回点的名称。如何查询。查询以查找PostGis中的点列和点之间的距离
1
A
回答
2
假设你的数据的SRID是4326,你正在寻找的查询是:
SELECT the_geom FROM mytable WHERE ST_DWithin(the_geom,ST_GeomFromEWKT("srid=4326;POINT(lon lat)"), 0.0008);
注意,在ST_DWithin单位(0.0008)是在你的投影至同一单位,在4326的情况下他们是学位。如果您的投影数据以米为单位,您将能够使用仪表。
对于生产应用程序,您应该使用几何类型,速度更快。从计算器以前question:
简答题:地理是支持长距离 距离测量一个新的数据类型。如果您使用地理 - 您不需要 了解更多有关平面坐标系的知识。如果您关心的只是测量距离和长度,并且您拥有来自世界各地的数据,则地理位置通常最好是 。几何数据类型是一个较旧的数据类型,它具有许多支持它的功能,并且从第三方工具中获得很大的支持 。如果您对 空间参考系统非常满意,或者您正在处理的是所有数据都适合单个空间参考系统(SRID)的本地化数据,或者您需要进行大量空间处理,那么这是最好的选择。请参阅第8.8节“PostGIS 函数支持列表”,查看当前支持的内容以及 不支持的内容。
-3
太棒了。谢谢。它在数据库中工作正常。我有以下代码从PHP ..回调像查询失败:
$ locationresult = pg_query($ con,“SELECT id,name FROM gps.locationnames WHERE ST_DWithin(location,ST_GeographyFromText('POINT(lon lat)' ),500)“)或死亡('查询失败:'。pg_last_error($ con));
这里有什么问题..
相关问题
- 1. 查找C中两点之间的距离
- 2. 查找网络节点之间的路径距离?
- 3. 如何查找地点之间的距离?
- 4. 查找两个GPS点之间的横向距离
- 5. 查找节点之间最近的距离
- 6. 使用Google Maps API查找2个点之间的距离
- 7. 查找MYSQL中两点之间的距离。 (使用点数据类型)
- 8. 向量和点之间的距离
- 9. 查找点距离之和来设定其他点的是最小的
- 10. 查询查找距离特定节点两步的所有节点
- 11. 使用PostgreSQL和PostGIS查询空间相交(点 - 多边形在列中)使用PostgreSQL和PostGIS查询
- 12. 查找三维空间中三角形的点距离
- 13. 通过距离参考点的距离查找全部
- 14. 计算matlab中点之间的距离
- 15. Matlab中两点之间的距离
- 16. 查找两列之间的交点
- 17. 找到一个节点和树的根之间的距离
- 18. 查找2点之间的限制点
- 19. 点之间的相等距离高图
- 20. 多点之间的最短距离
- 21. 两点之间的Cloudmade距离
- 22. 两点之间的测地距离
- 23. 点与线之间的垂直距离
- 24. Hive:两点之间的距离
- 25. 计算点之间的距离
- 26. 两个地理点之间的距离?
- 27. 2个latlon点之间的距离
- 28. 特定节点和点之间的最短距离
- 29. 查找哪些点位于每个点的给定距离内
- 30. 使用linq查找导航点列表所需的距离
你应该发布这是另一个问题。什么是错误信息? – 2011-12-29 15:55:49
输入一个新问题,标记为php – Twelfth 2011-12-29 18:59:15