2012-06-25 25 views
0

我需要在單個記錄中的數據庫中存儲大量地理座標。這是不可能的存儲地理座標在SQL數據庫中,以便在此刻我這樣做:WP7 - 將地理座標存儲在數據庫中

geocoordinates-->string-->bytes-->database 

在數據庫中對字符串的限制是8000個字節,因此數據的這個量必須存儲在字節格式(數據庫認爲它是一個圖像,所以沒有字節限制)。我已經將地理座標截斷爲6d.p(從15d.p開始下降),但這個過程非常緩慢。

有誰知道如何提高這項任務的效率?

謝謝!

回答

2

爲什麼不重新設計您的數據庫,並將這些點存儲爲一對雙精度來表示lat/long - 如果需要,這些都可以引用「父」行。

1

我建議您將地理位置數據存儲到經緯度對的新表格中,並將其與當前表格中的行/記錄相關聯。

我不知道你對這些數據有什麼計劃,但這對我來說似乎是合乎邏輯的解決方案。

1

Postgres的確有點和其他幾何圖元直接支持:http://www.postgresql.org/docs/9.1/interactive/datatype-geometric.html

而且,它具有< - >距離比較運營商,你可能會發現有用http://www.postgresql.org/docs/9.1/interactive/functions-geometry.html

也可以優化索引近鄰搜索,你可以讀到這裏:http://www.postgresql.org/docs/9.1/interactive/indexes-types.html

最後,這裏有一個例子,從上面的鏈接採取:

SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;

有專門的GIS數據庫,你可能也想看看。一個建立在Postgres之上的是PostGIS:http://postgis.refractions.net/

+0

感謝您的答案,但我不想替換我的整個數據庫 - 我不介意做一些更改。 – Cameron

+0

這很公平:) – River