是否有关于GPS坐标应存储在数据库中的最佳实践,然后在请求时将其转换为所需格式?
我有以下内容:
S33° 56' 51.972" E18° 51' 25.83"
将它存储在数据库或其他格式中是否很好?我只是想知道,因为它包含一个度数符号和分钟和秒符号。
以上内容是否需要保存为NVARCHAR(50)
或VARCHAR(50)
是否足够?
我正在使用SQL Server
,但这应该适用于所有形式的数据库。
答案 0 :(得分:2)
首先,您应该将DMS(度,分,秒)坐标转换为浮点数。这是algorythm:how to convert between degrees, minutes, seconds to Decimal coordinates。
之后,使用DECIMAL类型的两个字段来相应地存储纬度和经度值。使用像DECIMAL(15,10)这样的东西。这给你总共15位数,其中10位小数点后5位小数点前。此数据类型非常适合GPS坐标,并允许您按地理坐标搜索记录。
以下是有关SQL Server的DECIMAL类型的信息: http://msdn.microsoft.com/en-us/library/ms187746.aspx
答案 1 :(得分:1)
这仅适用于SQL Server。该命名地理位置有一个特殊的DataType。见http://msdn.microsoft.com/en-us/library/cc280766.aspx
答案 2 :(得分:0)
在我看来,更好的方法是存储GPS坐标的十进制值。因此,单位将是学位,它需要您的数据库中较少的字段。
您可以在此处看到有关如何执行此操作的示例:Convert Degrees/Minutes/Seconds to Decimal Coordinates