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

本文关键字:最佳 方法 坐标 GPS 数据库 存储 | 更新日期: 2023-09-27 18:10:50

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

我有以下内容:

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

像这样存储在数据库中还是以另一种格式存储?我只是想知道,因为它包含一个度符号和分和秒符号。

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

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

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

首先,您应该将DMS(度,分,秒)坐标转换为浮点数。以下是算法:如何在度,分,秒之间转换为十进制坐标。

之后,使用两个DECIMAL类型的字段来存储纬度和经度值。使用类似DECIMAL(15,10)的值。总共15位,其中10位在小数点后,5位在小数点前。这种数据类型非常适合GPS坐标,并允许您通过地理坐标搜索记录。

下面是关于SQL Server的DECIMAL类型的信息:http://msdn.microsoft.com/en-us/library/ms187746.aspx

在我看来,更好的方法是存储GPS坐标的十进制值。因此,单位将是学位,并且它在数据库中需要更少的字段。

你可以在这里看到一个例子,如何做到这一点:转换度/分/秒到十进制坐标

这只适用于SQL Server。它有一个特殊的DataType,名为geography。见http://msdn.microsoft.com/en-us/library/cc280766.aspx