小数点前和小数点后,经度和纬度可以有多少位数字?

这是一个例子,我从一个Windows Phone设备发送的位置:

Latitude=-63572375290155
Longitude=106744840359415

这非常长,超过了我的表列大小,并导致错误。


当前回答

我知道已经有几个答案了,但我添加了这个,因为这增加了关于小数点后的位置和所要求的最大长度的大量信息。

纬度和经度的长度取决于精度。每项的绝对最大长度为:

纬度:12个字符(例如:-90.00000001) 经度:13个字符(例如:-180.00000001)

对于两个hold:最多8个贴花的地方是可能的(虽然不常用)。

对精度依赖的解释:

详见维基百科上Decimal degrees文章的完整表格

其他回答

我知道已经有几个答案了,但我添加了这个,因为这增加了关于小数点后的位置和所要求的最大长度的大量信息。

纬度和经度的长度取决于精度。每项的绝对最大长度为:

纬度:12个字符(例如:-90.00000001) 经度:13个字符(例如:-180.00000001)

对于两个hold:最多8个贴花的地方是可能的(虽然不常用)。

对精度依赖的解释:

详见维基百科上Decimal degrees文章的完整表格

总共最大纬度是:9(12.3456789),经度10(123.4567890),它们都有最大7个小数字符(至少是我可以在谷歌地图中找到的),

例如,Rails和Postgresql中的两列看起来都是这样的:

t.decimal :latitude, precision: 9, scale: 7
t.decimal :longitude, precision: 10, scale: 7

编辑:

正如Jasie所说,最大小数应该是8,但只有少数web服务接受这一点。

谷歌map实际上使用符号值来表示位置:

纬度:最大/分钟90.0000000到-90.0000000 经度:最大/分钟180.0000000 ~ -180.0000000

所以如果你想在你的项目中使用坐标,你需要DECIMAL(10,7) ie。为SQL。

请查看UTM坐标系https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system。

对于特定的地图投影,这些值必须以米为单位。例如,UTM第11区阿西尼博因山(Mount Assiniboine,位于50°52′10″N 115°39′03″W)的山峰用11U 594934.108296 5636174.091274表示,其中(594934.108296,5636174.091274)单位为米。

在SQL Server中存储Lat Long值的理想数据类型是十进制(9,6)

正如其他人所说,这是在大约10cm的精度,而只使用5字节的存储。

例如:CAST(123.456789 as decimal(9,6)) as [LatOrLong]