您好我正在使用 ms sql 2005 来存储一些 latlng 数据。它目前以以下形式存储在 nvarchar 列中 - “35.6949965,139.7555035” 我的问题是。这是存储此类数据的最佳方式吗?如果我确实以这种方式存储 latlng,它是否会在以后咬我,或者这是否意味着我将不得不在数据库之外进行任何处理?
任何指针表示赞赏,
您好我正在使用 ms sql 2005 来存储一些 latlng 数据。它目前以以下形式存储在 nvarchar 列中 - “35.6949965,139.7555035” 我的问题是。这是存储此类数据的最佳方式吗?如果我确实以这种方式存储 latlng,它是否会在以后咬我,或者这是否意味着我将不得不在数据库之外进行任何处理?
任何指针表示赞赏,
理想情况下,您应该更新到 MSSQL 2008 并使用新的GEOGRAPHY 数据类型。这将允许您使用各种漂亮的功能,例如有效执行查询的空间索引,例如“给我 35.6949965,139.7555035 100 英里半径内的所有点”。
这几乎肯定不是存储它的最佳方式。如果您使用一对浮点列 - 纬度和经度 - 那么您可以在数据库本身内执行一些功能。例如,以下是计算两点之间距离的方法:
http://www.zipcodeworld.com/samples/distance.mssql.html
或者,作为一个简单的例子,
SELECT * FROM table WHERE latitide<40;
在纽约以北的任何地方都能找到。