我在我的應用程序中使用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