zoukankan      html  css  js  c++  java
  • 坐标转换一些

    http://rovertang.com/labs/tileindex/

    关于中国的经纬度

    国内的经纬度有三套系统:

    • WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。
    • GCJ02:又称火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
    • BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

    使用OpenStreetMap的坐标为WGS84;使用高德地图、腾讯地图的坐标为GCJ02;使用百度地图的坐标为BD09;谷歌地图和Bing地图的中国部分采用了高德地图的数据,所以坐标为GCJ02。

    WGS84的坐标转化为GCJ02的坐标是单向的,即WGS84的坐标能够准确地变换为GCJ02坐标;但GCJ02坐标转换为WGS84时会存在精度损失。

    GCJ02的坐标和BD09的坐标转换是双向的,转换规则可以参考下面的python代码:

     
    import math
    
    x_pi = 3.14159265358979324 * 3000.0 / 180.0
    
    def amapcoor2bmapcoor(amap_lon, amap_lat):
        x = amap_lon
        y = amap_lat
        z = math.sqrt(x * x + y * y) + 0.00002 * math.sin(y * x_pi)
        theta = math.atan2(y, x) + 0.000003 * math.cos(x * x_pi)
        bmap_lon = z * math.cos(theta) + 0.0065
        bmap_lat = z * math.sin(theta) + 0.006
        return (bmap_lon, bmap_lat)
    
    def bmapcoor2amapcoor(bmap_lon, bmap_lat):
        x = bmap_lon - 0.0065
        y = bmap_lat - 0.006;
        z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * x_pi);
        theta = math.atan2(y, x) - 0.000003 * math.cos(x * x_pi);
        amap_lon = z * math.cos(theta);
        amap_lat = z * math.sin(theta);
        return (amap_lon, amap_lat)




    https://github.com/geometalab/pyGeoTile


  • 相关阅读:
    Hadoop配置
    大数据总览
    Shell(五)Shell输入/输出重定向
    善用try catch来使不可避免的错误发生时,程序不崩溃,只是终止该进程。
    silverlight 程序发布
    linq查distinct
    silverlight 服务端与客户端分2个VS程序打开,同时调试
    将25转成00025的方法
    【转】C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)
    LINQ处理List数据
  • 原文地址:https://www.cnblogs.com/fir/p/10659937.html
Copyright © 2011-2022 走看看