[英]Database design for search of geocoordinates
在MySQL數據庫中,我有動物(大象)的跟蹤數據。 目前的設計如下:
timestamp(INT) | individualID(INT) | longitude(DECIMAL) | latitude(DECIMAL)
現在我想向數據庫提幾個問題
是否有一些可用於MySQL的內置功能? 我應該選擇不同的數據庫嗎?
有一個基於OGC SFS (簡單功能規范)實現GEOMETRY
的MySQL Spatial Extension 。 它是許多數據庫引擎的SPATIAL數據實現的基本標准。
對於客戶端,有OpenLayers ,HTML5 SVG, Google Maps 。 看看GIS.StackExchange.com 。
從我的經驗來看(如果它可能需要計算,就像2年前一樣),MySQL實現空間數據就足夠了,但不是最好的。 它在Oracle和MS SQL Server(IMHO)中實現得更好。 如果你不打算構建非常復雜的地圖 - MySQL功能就足夠了。 對於復雜的功能,我建議使用不同的數據庫引擎。
在SO上有類似的問題: 找到兩個緯度/長點之間距離的最快方法 ,其中接受的答案使用MySQL Spatial Extension。 如果您要進行更多研究,可以在其他問題上找到答案。
我也可以嘗試提供查詢依據:
MIN()
+ GLength()
+ LineString
+ Point
s)。 Contains()
+ Polygon
+ Point
。 Contains()
+ Polygon
+ Point
)。 我使用以下代碼克服了我的PHP應用程序中的前兩個問題http://www.geodatasource.com/developers/php那里還有一個SQL版本的解決方案。
基本上,您需要使用三角法計算地球表面上弧的長度,以獲得2個網格點之間的距離。
然后,您可以比較多個人與基地位置的距離,並消除距離超過50公里的所有人,以便讓您的動物群在周界內。
你的問題的第3部分需要一些更復雜的代數,這不是我所解決的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.