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坐标已经成功转换为百度坐标

原文地址:https://www.cnblogs.com/Mysterious/p/9153111.html

时间: 2024-10-12 20:22:43

GPS坐标(WGS84)转换百度坐标(BD09) python测试的相关文章

GPS坐标转化为百度坐标

============问题描述============ 想把手机采集的GPS坐标转化为百度坐标,在网上找了一下代码: GeoPoint geoPoint3 = new GeoPoint((int) ((mLat1 + 0.001) * 1E6), (int) ((mLon1 + 0.003) * 1E6)); GeoPoint GeoPointBaidu = CoordinateConvert.fromWgs84ToBaidu(geoPoint3);  mOverlayList.add(new

[C#]利用纠偏数据来处理地球坐标(WGS-84)与火星坐标 (GCJ-02)转换

关键代码: using System; using System.Collections; using System.Collections.Generic; using System.IO; using YanZhiwei.DotNet2.Utilities.Models; namespace YanZhiwei.DotNet2.Utilities.Common { /// <summary> /// 地图纠偏数据帮助类 /// </summary> public class M

地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换

■ 背景 国际坐标系 WGS-84:地心坐标系,国际通用.应用:Googole Map 火星坐标系 GCJ-02:由中国×××(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统.应用:高德地图 百度坐标系 BD-09:在GCJ-02的基础上二次偏移.应用:百度地图 ■ GCJ-02和BD-09互相转换 (js) // 高德地图坐标系(火星坐标GCJ-02) -> 百度地图坐标系(百度坐标BD-09) // 参数形式为"lng,lat" //

C#后台 GPS坐标转化成百度坐标

protected void Page_Load(object sender, EventArgs e) { //获取当前纬度 string Latitude = "117.707677"; //获取当前经度 string Longitude = "39.084097"; //百度坐标转换API string path = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=&q

GPS坐标换算为百度坐标

最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地图上的位置(采用百度静态地图,根据坐标直接生成图片)并将图片保存到数据库,PC端直接从数据库中读取并展示图片.问题是:生成的图片所呈现的位置与实际位置偏差太大.于是我开始踏上了寻找解决办法的道路. 首先我检测我的硬件设备是否定位准确,我用WP8手机内置的地图进行了当前位置定位,结果没有问题,说明我的

GPS转换为百度坐标

原文地址:http://www.cnblogs.com/zhaohuionly/archive/2013/06/18/3142623.html 最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地图上的位置(采用百度静态地图,根据坐标直接生成图片)并将图片保存到数据库,PC端直接从数据库中读取并展示图片.问题是:生成的图片所呈现的位置与实际位置偏差太

微信坐标转换百度坐标

1.问题 项目中需要进行测距,当前位置到指定位置的直线距离,目的坐标使用为百度坐标,而我们在微信里获取的当前坐标为wgs-48国际坐标这里需要对其进行转换 2.转化微信坐标到百度坐标 在这里百度为我们提供了转换工具,只要按照转换文档进行转换即可,大家可以到这个网址上看看http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition应该就知道如何进行转换了,当然这里我们会用到百度的jssdk 关于jssdk我们只需要引入相应的

[转]百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换

注:项目中面对不同的坐标体系,在地图上显示会有不小的偏差,下面是JavaScript的转换方法. //定义一些常量 var x_PI = 3.14159265358979324 * 3000.0 / 180.0; var PI = 3.1415926535897932384626; var a = 6378245.0; var ee = 0.00669342162296594323; /** * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换 * 即 百度 转 谷歌.高德 *

GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)(转载)

WGS-84:是国际标准,GPS坐标(Google Earth使用.或者GPS模块)GCJ-02:中国坐标偏移标准,Google Map.高德.腾讯使用BD-09:百度坐标偏移标准,Baidu Map使用//WGS-84 to GCJ-02GPS.gcj_encrypt();//GCJ-02 to WGS-84 粗略GPS.gcj_decrypt();//GCJ-02 to WGS-84 精确(二分极限法)// var threshold = 0.000000001; 目前设置的是精确到小数点后