• 坐标转换一些


    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


  • 相关阅读:
    ConcurrentHashMap总结
    HashMap在多线程环境下操作可能会导致程序死循环
    oracle数据库的 to char 和to date 区别(时间格式化)
    SQL中的cast()函数用法
    常见的垃圾收集器有3类-java面试一
    mybatis中sql引用
    mysql find_in_set 查询
    用Redis实现微博关注关系的分析
    C#与C++相比较之STL篇(续一)
    Vite2.0 入门
  • 原文地址:https://www.cnblogs.com/fir/p/10659937.html
Copyright © 2020-2023  润新知