GPS坐标(WGS84)转换百度坐标(BD09) python测试
Posted 神秘藏宝室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GPS坐标(WGS84)转换百度坐标(BD09) python测试相关的知识,希望对你有一定的参考价值。
基础知识坐标系说明:
WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。
GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标
参考文档:
http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition
功能接口主用调用WEB API
http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET请求
python测试代码
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: geoconvTools
Description :
Author : 神秘藏宝室
date: 2018-06-07
-------------------------------------------------
Change Activity:
2018-06-07:
-------------------------------------------------
"""
import urllib
import hashlib
import requests
import json
class Geoconv(object):
my_ak = \'84eO3xjZlFLelrOGN-------------------------\'
my_sk = \'fFyAglwnmgxnYI6c---------------------------\'
def __init__(self):
pass
# GPS坐标转换为百度坐标
#解释:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition
#API:http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET
def wgs84tobd09(self,lon,lat):
queryStr = \'/geoconv/v1/?coords={},{}&from=1&to=5&ak={}\'.format(lon,lat,self.my_ak)
# print queryStr
# 对queryStr进行转码,safe内的保留字符不转换
encodedStr = urllib.quote(queryStr, safe="/:=&?#+!$,;\'@()*[]")
# 在最后直接追加上yoursk
rawStr = encodedStr + self.my_sk
# md5计算出的sn值
my_sn = hashlib.md5(urllib.quote_plus(rawStr)).hexdigest()
# print my_sn
url = \'http://api.map.baidu.com\' + queryStr + "&sn=" + my_sn
# print url
res = requests.get(url)
# print \'*\' * 10
# get收到的内容
json_str = res.content
# print json_str
dictData = json.loads(json_str)
# print dictData["result"][0]["x"]
# print dictData["result"][0]["y"]
return dictData["result"][0]["x"],dictData["result"][0]["y"]
if __name__ == \'__main__\':
LON = \'112.40832\'
LAT = \'34.636055\'
myconv = Geoconv()
print myconv.wgs84tobd09(LON,LAT)
最终输出结果,成功转换成百度坐标
(112.42110872813592, 34.641182049243476)
在百度地图上显示和我自己的GPS所在位置完全一致,说明GPS坐标已经成功转换为百度坐标
以上是关于GPS坐标(WGS84)转换百度坐标(BD09) python测试的主要内容,如果未能解决你的问题,请参考以下文章
WGS84(GPS)火星坐标系(GCJ02)百度地图(BD09)坐标系转换案例教程(附转换工具下载)
WGS84(GPS)火星坐标系(GCJ02)百度地图(BD09)坐标系转换案例教程(附转换工具下载)