WGS84 / BD09 / GCJ02 / MapBar 经纬度坐标互转

该博客介绍了如何在WGS84、BD09、GCJ02和MapBar坐标系之间进行地理位置转换。涉及了GPS坐标、国测局坐标、百度坐标以及图吧坐标,提供了测试网站和GitHub资源链接。
摘要由CSDN通过智能技术生成

WGS84 / BD09 / GCJ02 / MapBar 经纬度坐标互转

Geolocataion converting between WGS84, BD09 and GCJ02.

WGS84 / BD09 / GCJ02 / MapBar 经纬度坐标互转。

  • WGS84: GPS coordinates for Google Earth (GPS坐标,谷歌地球使用)
  • GCJ02: national coordinate system developed by China (国测局坐标,谷歌中国地图、腾讯地图、高德地图使用)
  • BD09: Baidu coordinates (百度坐标系,百度地图使用)
  • MapBar: MapBar coordinates (图吧坐标系,图吧地图使用)

Test website: http://gpsspg.com/maps.htm

Author: Gaussic

Date: 2019-05-09

Github 链接:gaussic/geo_convert

全部代码:

# coding: utf-8
# coding: utf-8

"""
Geolocataion converting between WGS84, BD09 and GCJ02.
WGS84 / BD09 / GCJ02 / MapBar 经纬度坐标互转。
- WGS84: GPS coordinates for Google Earth (GPS坐标,谷歌地球使用)
- GCJ02: national coordinate system developed by China (国测局坐标,谷歌中国地图、腾讯地图、高德地图使用)
- BD09: Baidu coordinates (百度坐标系,百度地图使用)
- MapBar: MapBar coordinates (图吧坐标系,图吧地图使用)
Test website: http://gpsspg.com/maps.htm
Author: Gaussic
Date:   2019-05-09
"""

import math

PI = math.pi
PIX = math.pi * 3000 / 180
EE = 0.00669342162296594323
A = 6378245.0


def bd09_to_gcj02(lng, lat):
    """BD09 -> GCJ02"""
    x, y =  lng - 0.0065, lat - 0.006
    z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * PIX)
    theta = math.atan2(y, x) - 0.000003 * math.cos(x * PIX)
    lng, lat = z * math.cos(theta), z * math.sin(theta)
    return lng, lat


def gcj02_to_bd09(lng, lat):
    """GCJ02 -> BD09"""
    z = math.sqrt(lng * lng + lat * lat) + 0.00002 * math.sin(lat * PIX)
    theta = math.atan2(lat, lng) + 0.000003 * math.cos(lng * PIX)
    lng, lat = z * math.cos(theta) + 0.0065, z * math.sin(theta) + 0.006
    return lng, lat


def gcj02_to_wgs84(lng, lat):
    """GCJ02 -> WGS84"""
    if out_of_china(lng, lat):
        return lng, lat
    dlat = transform_lat(lng - 105.0, lat - 35.0)
    dlng = transform_lng
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值