zoukankan      html  css  js  c++  java
  • 坐标系的冷知识2

    坐标体系

    第一种分类:

    1、 GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。

     

    2、 GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。

     

    3、 其他坐标体系。一般都是由GCJ-02进过偏移算法得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,百度和搜狗就使用自己的坐标体系,与其他坐标体系不兼容。

     

     

    第二种分类:

    首先明白,所有坐标体系的原点,都是非洲

    1、 经纬度。这个是球面坐标,对于北京来说,就是(116.388171,39.935961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。

    如果是度分秒坐标,需要进行转换,才能得到这样的经纬度坐标。详见坐标转换。

    2墨卡托坐标。平面坐标,相当于是直线距离,数字一般都比较大,像这样的。(215362.00021333335, 99526.00034912192)

    墨卡托坐标,主要用于程序的后台计算。直线距离嘛,加加减减几乎计算方便。

    搜狗地图API就是直接使用的墨卡托坐标。

    二、坐标转换

    在各种web端平台,或者高德、腾讯、百度上取到的坐标,都不是GPS坐标,都是GCJ-02坐标,或者自己的偏移坐标系。

    比如,你在谷歌地图API,高德地图API,腾讯地图API上取到的,都是GCJ-02坐标,他们三家都是通用的,也适用于大部分地图API产品,以及他们的地图产品。

    例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。

    例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。

    例外,谷歌地球,google earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。

    1、度分秒坐标转换为经纬度

    比如,在GPS记录仪,或者google earth上采集到的是39°31'20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39 + 31/60 + 20.51/3600 度。

    2、 GPS转换为GCJ-02坐标

    谷歌,高德,腾讯的地图API官网上,都不直接提供这样的坐标转换。如果要得到GCJ-02坐标,最好在他们的地图上直接取点,或者通过地址解析得到。(这个工具我后续会贴出来的。我就爱干这样的事情,哈哈。)

    不过,在网上搜到了这样的接口,该接口的type=1就是GPS转到GCJ-02的墨卡托坐标。请大家对接口保密,哈哈。详见:

    http://map.sogou.com/api/documentation/javascript/api2.5/interface_translate.html#late_intro

    3、GCJ-02与BD-09之间互转

    国测局GCJ-02坐标体系(谷歌、高德、腾讯),与百度坐标BD-09体系的转换,在CSDN上有很详细的讲解:

    http://blog.csdn.net/coolypf/article/details/8569813

    不过也有更简单的算法,线性算法(lat和lng是经纬度,球面坐标):

    To_B是转到百度,To_G是转到GCJ-02

    var TO_BLNG = function(lng){return lng+0.0065;};

    var TO_BLAT = function(lat){return lat+0.0060;};

    var TO_GLNG = function(lng){return lng-0.0065;};

    var TO_GLAT = function(lat){return lat-0.0060;};

    4、经纬纬度转成墨卡托

    网上也有详细讲解:

    http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=78245

    5、各家API公司坐标转换接口的申请

    一般需要将您的公司名称、项目名称、项目简介、联系人和联系方式,发邮件至地图API公司的商务部,经过申请,才能使用。

  • 相关阅读:
    servlet遇到的问题
    servlel出现404问题★ 出现不自动映射 设置XML的问题时候
    c3p0的错误mchange.v2.ser.Indirector
    【转】JSON和JSONP
    性能测试理论
    如何解决包冲突问题
    一方包、二方包、三方包是什么?
    利用selenium webdriver点击alert提示框
    采用Spring管理Bean和依赖注入
    Java加载jar文件并调用jar文件当中有参数和返回值的方法
  • 原文地址:https://www.cnblogs.com/fengwuqingyang/p/4957346.html
Copyright © 2011-2022 走看看