位置坐标,纬度和经度的长度是多少? [关闭]
Posted
技术标签:
【中文标题】位置坐标,纬度和经度的长度是多少? [关闭]【英文标题】:What are the lengths of Location Coordinates, latitude and longitude? [closed] 【发布时间】:2013-04-04 14:45:54 【问题描述】:纬度和经度可以有多少位数字,小数点前和小数点后?
这是我从 Windows Phone 设备发送的位置获取的示例:
Latitude=-63572375290155
Longitude=106744840359415
这很长,超出了我的表格列大小并导致错误。
【问题讨论】:
你确定这些是 lat/long 吗?它们的最大/最小值是 lat +90 到 -90 长 +180 到 -180,我会说缺少逗号...如果格式正确,将其保存为数据库中的浮点数就足够了。但我认为出了点问题,因为你的价值观不可能是真的 您正在使用一些 API 来获取这些值。据推测,API 附带文档。文档对这些单位有什么说明? 我怀疑这些数字实际上是 -63.572375290155 和 106.744840359415,就在南极洲海岸附近。带七位小数的纬度或经度精确到 5 英尺。任何超过 8 位小数都是噪音。 See also Google 地图实际上使用带符号的值来表示位置: 纬度:最大/分钟 90.0000000 到 -90.0000000 经度:最大/分钟 180.0000000 到 -180.0000000 所以如果你想在你的项目中使用坐标,你会需要 DECIMAL(10,7) 即。用于 SQL。 【参考方案1】:如果纬度坐标以十进制度数报告为 -6.3572375290155 或 -63.572375290155,那么您可以四舍五入并存储最多 6 位小数,以实现 10 厘米(或 0.1 米)精度。如果坐标参考系 (CRS) 不是 EPSG:4326(例如 EPSG:3857),则 x 和 y 值测量距原点的距离(以米为单位,而不是以度为单位)。
概述
南半球和北半球的有效纬度范围分别为 -90 和 +90。经度在 -180 和 +180 范围内,分别指定本初子午线以西和以东的坐标。作为参考,Equator 的纬度为 0°,North pole 的纬度为北纬 90°(写作 90° N 或 +90°),South pole 的纬度为 -90°。
Prime Meridian 的经度为 0°,穿过英格兰格林威治。 International Date Line (IDL) 大致遵循 180° 经度。正值经度在东半球,负值在西半球。
十进制度精度
六 (6) 位小数 使用十进制度表示法的坐标精度为 10 厘米(或 0.1 米)分辨率。坐标十进制度的每个 .000001 差异大约是 10 厘米长。例如,谷歌地球和谷歌地图的图像分辨率通常为 1 米,有些地方的分辨率更高,为每像素 1 英寸。一米分辨率可以使用 5 个小数位表示,因此超过 6 个小数位对于该分辨率是无关的。赤道的经度间距与纬度相同,但两极的经度间距为零,因为经线在该点交汇。
对于毫米 (mm) 精度,则以十进制度格式表示带 8 位小数的纬度/经度。由于大多数应用程序不需要小数点后 6 位的精度,因此对于大多数情况来说就足够了。
在另一个方向上,十进制度数表示约 111 公里(或 60 海里)的距离,十进制度数差 0.1 表示约 11 公里的距离。
这是一个以 0,0 为起点的纬度表,其中包含 # 个小数位的纬度差异以及 delta 度和以米为单位的估计距离。
Decimal places | Decimal degrees | Distance (meters) | Notes |
---|---|---|---|
0 | 1.0 | 110,574.3 | 111 km |
1 | 0.1 | 11,057.43 | 11 km |
2 | 0.01 | 1,105.74 | 1 km |
3 | 0.001 | 110.57 | |
4 | 0.0001 | 11.06 | |
5 | 0.00001 | 1.11 | |
6 | 0.000001 | 0.11 | 11 cm |
7 | 0.0000001 | 0.01 | 1 cm |
8 | 0.00000001 | 0.001 | 1 mm |
度-分-秒 (DMS) 表示
对于 DMS 表示法,1 弧秒 = 1/60/60 度 = ~30 米长,0.1 弧秒增量为 ~3 米。
例子:
0° 0' 0" W, 0° 0' 0" N
⟹ 0° 0' 0" W, 0° 0' 1" N
⟹ 30.715 米
0° 0' 0" W, 0° 0' 0" N
⟹ 0° 0' 0" W, 0° 0' 0.1" N
⟹ 3.0715米
1 弧分 = 1/60 度 = ~2000m (2km)
更新:
Here 是一部关于坐标精度的有趣漫画。
【讨论】:
经度怎么样。多少小数位精度足以容纳它。 6 个小数点位差 (0.000001) 纬度约为 0.11 米,经度约为 0.11 米,在赤道附近和两极附近,经度三角洲的距离要小得多(4 个十进制度变为 20厘米)。因此,对于 10 厘米的分辨率,平均 6 位小数就足够了。 我可以建议在您当前使用10 cm
的地方使用0.1 m
(除非您说“大约 10 厘米”)。否则很好的答案。
关于 lat/lng 精度的更多信息:mysql.rjweb.org/doc.php/latlng#representation_choices
Google 地图实际上使用带符号的值来表示位置: 纬度:最大/分钟 90.0000000 到 -90.0000000 经度:最大/分钟 180.0000000 到 -180.0000000 所以如果你想在你的项目中使用坐标,你会需要 DECIMAL(10,7) 即。用于 SQL。【参考方案2】:
Google 地图实际上使用带符号的值来表示位置:
纬度:最大/最小 90.0000000
到 -90.0000000
经度 : max/min 180.0000000
to -180.0000000
因此,如果您想在项目中使用坐标,则需要 DECIMAL(10,7) 即。用于 SQL。
【讨论】:
这并没有真正回答问题,它要求最大长度为 lat 和 long。我不明白,为什么它有这么多的赞成票,sry。 只是为了确定:边界(-90、+90、-180、+180)是包括还是不包括在内? 对于 SQL,纬度decimal(10,8)
& 经度 decimal(11,8)
@jasie 你觉得这个答案有什么问题?【参考方案3】:
总共的最大纬度是:9 (12.3456789),经度 10 (123.4567890),它们都最多有 7 个小数字符(至少是我在 Google Maps 中可以找到的),
例如,Rails 和 Postgresql 中的两个列看起来都是这样的:
t.decimal :latitude, precision: 9, scale: 7
t.decimal :longitude, precision: 10, scale: 7
编辑:
正如 Jasie 所说,最大小数点应为 8,但只有少数 Web 服务接受。
【讨论】:
最多 7 个十进制字符是错误的!! 8 是正确的(很少见,但可能)!见en.wikipedia.org/wiki/Decimal_degrees 是的,也许你是对的。不知道许多网络服务是否接受 8 个十进制字符,但现在应该接受。【参考方案4】:有效的经度范围是 -180 到 180 度。
纬度应该是从 -90 度到 90 度,但是非常靠近两极的区域是不可索引的。
因此,EPSG:900913 / EPSG:3785 / OSGEO:41001 指定的确切限制如下:
有效经度为 -180 到 180 度。 有效纬度范围是 -85.05112878 到 85.05112878 度。【讨论】:
此答案中提到的限制适用于特定的地图投影。该答案不是对该问题的有效答案并且具有误导性。一个完全不同的问题。 你知道为什么有效的纬度是-85到85吗?我一直在寻找它背后的原因。我很想知道背后的原因。 @Lurr 也许是因为你不想在北极和南极结束。如果地球在两极有点扁平,那么在达到 90 度之前逐渐变细并在 85 度左右变平是有意义的 我不明白。您能否更详细地说明为什么 89 纬度会成为问题?这是否意味着在给定的保护下,由于无法指定电线杆周围的区域?【参考方案5】:在 SQL Server 中存储 Lat Long 值的理想数据类型是 decimal(9,6)
正如其他人所说,这大约是 10 厘米精度,而仅使用 5 个字节的存储空间。
例如CAST(123.456789 as decimal(9,6)) as [LatOrLong]
【讨论】:
【参考方案6】:请检查UTM坐标系https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system。
对于特定的地图投影,这些值必须以米为单位。例如,UTM 11 区的阿西尼博因山峰(北纬 50°52′10″ 115°39′03″W)由 11U 594934.108296 5636174.091274 表示,其中 (594934.108296, 5636174.091274) 以米为单位。
【讨论】:
好电话。如果您的多伦多坐标 (43.6, -79.4) 看起来像:630001.79, 4833599.08 那么数据在 UTM latlong.net/lat-long-utm.html【参考方案7】:我知道已经有几个答案,但我添加了这个,因为这增加了有关小数位的大量信息,因此增加了所要求的最大长度。
纬度和经度的长度取决于精度。每个的绝对最大长度为:
纬度:12 个字符(例如:-90.00000001) 经度:13 个字符(例如:-180.00000001)对于两个持有:最多 8 个小数位是可能的(虽然不常用)。
对精度依赖的解释:
在Decimal degrees article on Wikipedia查看完整表格
【讨论】:
那些.00...001
是专属边界吗?
对不起,@JinKwon,我不明白你的问题..
没关系。错误的问题。我什至不明白我在问什么。对不起。我想我想知道来自-90.00000001
和-180.00000001
的那些片段。以上是关于位置坐标,纬度和经度的长度是多少? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章