存储地理数据

时间:2010-08-11 07:58:10

标签: sql-server-2005 geolocation geotagging

您好我使用ms sql 2005来存储一些latlng数据。 它目前以下列形式存储在nvarchar列中 - “35.6949965,139.7555035” 我的问题是。 这是存储此类数据的最佳方式吗? 如果我以这种方式存储latlng它会在以后咬我,还是意味着我将不得不在数据库之外进行任何处理?

任何指示赞赏,

2 个答案:

答案 0 :(得分:3)

理想情况下,您将更新到MSSQL 2008并使用新的GEOGRAPHY data type。这将允许您使用各种漂亮的功能,如空间索引,有效地执行查询,如“给我100.6英里半径范围内的所有点35.6949965,139.7555035”。

答案 1 :(得分:2)

这几乎肯定不是存储它的最佳方式。如果使用一对浮点列 - 纬度和经度 - 那么您可以在数据库本身内执行某些功能。作为一个例子,这里是如何计算两点之间的距离:

http://www.zipcodeworld.com/samples/distance.mssql.html

或者,作为一个简单的例子,

SELECT * FROM table WHERE latitide<40;

会在纽约以北的任何地方找到。