在数据库中存储GPS坐标的最佳方法

8

在数据库中存储GPS坐标的最佳实践是什么?当请求时,是否应该将其转换为所需格式?

我有以下内容:

S33° 56' 51.972" E18° 51' 25.83"

将其存储在数据库中或以另一种格式存储是否好?我只是想知道,因为它包含度符号和分秒符号。

上述内容需要保存为NVARCHAR(50)还是VARCHAR(50)就足够了?

我正在使用SQL Server,但这适用于所有形式的数据库。

3个回答

8
首先,您需要将DMS(度,分,秒)坐标转换为浮点数。以下是算法:如何在度、分、秒和十进制坐标之间进行转换
之后,使用DECIMAL类型的两个字段分别存储您的纬度和经度值。使用类似DECIMAL(15,10)的东西。这给您总共15个数字,其中小数点后10个数字,小数点前5个数字。此数据类型非常适合GPS坐标,并允许您按地理坐标搜索记录。
这里是有关SQL Server的DECIMAL类型的信息:http://msdn.microsoft.com/en-us/library/ms187746.aspx

2

我认为一个更好的方法是存储GPS坐标的十进制值。单位将是度,这样在您的数据库中需要的字段会更少。

您可以在此处查看如何执行此操作的示例:将度/分/秒转换为十进制坐标


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接