好吧,讓我簡單解釋一下:如何實現基於地理位置的數據存儲和計算?
1.我想建立一個網站,提供基於位置的服務,如http://fireeagle.yahoo.net/。
2.我想這些服務大部分都與經度和緯度有關。
3.是否有任何特定的數據庫/數據存儲/數據結構適合這些應用程序?我的意思是容易存儲經度,緯度,易於計算或易於使用。
我是新來這和任何反饋,歡迎
好吧,讓我簡單解釋一下:如何實現基於地理位置的數據存儲和計算?
1.我想建立一個網站,提供基於位置的服務,如http://fireeagle.yahoo.net/。
2.我想這些服務大部分都與經度和緯度有關。
3.是否有任何特定的數據庫/數據存儲/數據結構適合這些應用程序?我的意思是容易存儲經度,緯度,易於計算或易於使用。
我是新來這和任何反饋,歡迎
空間擴展到關係數據庫系統提供存儲和索引訪問地理/幾何數據類型。它們允許您執行空間連接和各種空間查詢。總之,他們正是你所需要的。
如果您使用的是開源堆棧,我會推薦PostGIS,這是Postgresql的空間擴展。如果您使用MS堆棧,請嘗試spatial extensions to SQL Server 2008。
我建議你考慮GeoDjango
這是非常好的,因爲它融合了Python/Django的簡單性和PostGIS的強大功能。但它也可能很複雜,並提供太多功能,因此浪費您的時間。
如果你沒有特別的需求,還有另外一種更簡單的解決方案可以與Django或Python一起使用,即Geopy。雖然不向數據庫添加空間擴展,但它允許您使用通用數據結構(也包括任何數據庫)執行地理空間計算。你可以計算距離,做(反向)地理編碼。看看Getting Started頁面,但也直接在code,因爲它是有據可查的。我將它用於Dynamic Carpooling項目,效果非常好。
這兩個解決方案都非常適合Django框架,所以您可以圍繞所提供的服務輕鬆開發一個網站。
MySQL有一個spatial extension和教程here。獲得快速查詢的基本思路是設計一個帶有空間索引的列的表格,該索引對於範圍查詢很快,例如「給我靠近這一點」。
當然,還有Postgres和PostGIS,你可以從SimpleGeo這樣的公司支付這項服務。
關於開源堆棧的問題,MySQL也有geospacial支持 - http://dev.mysql.com/doc/refman/5.0/en/gis-introduction.html – 2010-06-04 04:08:54