请朋友们仔细看看,同一个地方,在谷歌地图、百度地图、高德地图等上面标的经纬度数据不同。是为啥呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请朋友们仔细看看,同一个地方,在谷歌地图、百度地图、高德地图等上面标的经纬度数据不同。是为啥呢?相关的知识,希望对你有一定的参考价值。

所使用的原始坐标系不同,也就是说两个地图参照的标准不一样,所以会有一定程度的偏差。
目前主要的有三种:
1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的;但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用;
2.GCJ-02坐标系,又名“火星坐标系”,是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ-02坐标系,或者使用在GCJ-02加密后再进行加密的坐标系,如百度坐标系。高德和Google在国内都是使用GCJ-02坐标系,可以说,GCJ-02是国内最广泛使用的坐标系;
3.百度坐标系:bd-09,百度坐标系是在GCJ-02坐标系的基础上再次加密偏移后形成的坐标系,只适用于百度地图。(目前百度API提供了从其它坐标系转换为百度坐标系的API,但却没有从百度坐标系转为其他坐标系的API)
参考技术A 比例尺问题,或者说测量精度问题。把地图比例尺放到最大,在各个地图上尽可能选同一个点,误差就会很小了。但仍然会有误差,也基本上是操作的原因。
你量取经纬度使用的是十进位数值,0.001度的误差相当于经度上约1.8米。在地图上误差1.8米(按你当前的比例尺大约相当于图上1/3毫米)太容易了。你当前使用的地图比例尺(原图)大约是5800分之一,误差1个毫米就大约相当于现地5.8米,就大体上相当于误差0.003度了。
在国内公开发行的地图,使用中国的坐标系,就必须符合统一的标准,误差太大是不允许的。当然有的地图本来用的就是不中国坐标系,比如大家常说的火星坐标系,那就不是误差问题了,是标准问题,从投影原理上就是不一样的,那就需要另当别论了。
参考技术B 因为每个运营商提取地址的经纬度的方法不同。追问

此图是成都市高新区锦悦西路附近的环球中心2号通道。是GPS经纬度查询到的,截屏下来的。同一个地点,不同的经纬度。怎么这些地图数据没有统一呢?

追答

每个公司用自己的方式测量。不统一(全球范围内)

参考技术C 火星坐标 故意偏差的
通过算法偏移 再通过算法校正
真正的坐标放到地图上显示的位置会偏差1公里之内
参考技术D 我也发现同一地点,百度地图的坐标拾取和高德地图开放平台的经纬度不同,仔细对照后,估计相差数百米。

如何在谷歌地图中锁定国家

【中文标题】如何在谷歌地图中锁定国家【英文标题】:How do I lock the country down in Google Maps 【发布时间】:2009-07-08 13:19:48 【问题描述】:

我怎样才能让你不能在谷歌地图中拖到英国以外的地方? 你能把它锁定在某个区域吗,因为我希望能够在英国周围拖动,但不能在外面拖动。

克里斯

【问题讨论】:

【参考方案1】:

有关如何执行此操作的文章,请参阅 Google Maps API Range Limiting。

代码都在the example中。

【讨论】:

甜的;忘了检查他的网站。在谷歌中找不到答案;我今天一定是在遭受关键字迟缓。 :op 塔【参考方案2】:

较早接受的答案在 v3 中已弃用,但在 2019 年 2 月,Google 提供了“限制地图边界”API。

https://developers.google.com/maps/documentation/javascript/examples/control-bounds-restriction

锁定波兰边界的示例代码是:

var centerPoland =  lat: 52.407578, lng: 19.393004 ;

function initMap() 
  var options = 
    zoom: 7,
    center: centerPoland,
    restriction: 
      latLngBounds: 
        east:  24.111384999999927,
        north: 54.83666,
        south: 49.002914,
        west: 14.149166000000037
      ,
      strictBounds: true
    ,
    scaleControl: true
  ;
  // Create map
  map = new google.maps.Map(document.getElementById("map"), options);

请注意,您无法缩小以查看整个国家(包括邻国)。那是因为strictBounds: true 设置为false 可以缩小,但平移限制仍然存在。

【讨论】:

以上是关于请朋友们仔细看看,同一个地方,在谷歌地图、百度地图、高德地图等上面标的经纬度数据不同。是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图上画线

DotSpatial如何加载GeoServer谷歌 百度腾讯的WMS地图

我的搜索没有在谷歌地图中显示他们的标记有啥问题?

如何使用LatLng在谷歌地图v2中以公里为单位获取两个地方之间的距离

如何在谷歌地图上放置标记

根据不同的纬度和长度设置谷歌地图的缩放级别