WP7 - 将坐标存储在数据库中

时间:2012-06-25 17:34:21

标签: database algorithm windows-phone-7 geocoding

我需要在单个记录中的数据库中存储大量geocoordiantes。在地图数据库中存储地理坐标是不可能的,所以目前我正在这样做:

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

数据库中字符串的限制是8000字节,因此这些数据量必须以字节格式存储(数据库认为它是一个图像,所以没有字节限制)。我已经将地理坐标截断到6d.p(从15d.p开始)但是这个过程非常非常慢。

有人知道如何提高这项任务的效率吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

为什么不重新设计数据库,并将这些点存储为一对双精度来表示纬度/经度 - 如果需要,这些都可以引用“父”行。

答案 1 :(得分:1)

我建议你将地理位置数据存储在纬度 - 经度对中的新表中,与当前表中的行/记录相关。

我不知道你对这些数据的计划是什么,但这对我来说似乎是合乎逻辑的解决方案。

答案 2 :(得分: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/

相关问题