小数点前和小数点后,经度和纬度可以有多少位数字?
这是一个例子,我从一个Windows Phone设备发送的位置:
Latitude=-63572375290155
Longitude=106744840359415
这非常长,超过了我的表列大小,并导致错误。
小数点前和小数点后,经度和纬度可以有多少位数字?
这是一个例子,我从一个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]