python wgs84坐标转换_GPS坐标(WGS84)转换百度坐标(BD09) python测试

该博客介绍了如何使用Python进行WGS84坐标到百度坐标(BD09)的转换。通过调用百度地图API并进行加密处理,实现了GPS坐标到百度坐标的准确转换。在代码测试中,显示转换后的坐标与实际GPS位置一致。
摘要由CSDN通过智能技术生成

#基础知识坐标系说明: 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坐标已经成功转换为百度坐标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值