【已解决】调用百度地图API将城市转换为经纬度问题
来源:互联网 发布:淘宝美工工作内容介绍 编辑:程序博客网 时间:2024/06/10 13:06
先获取城市名,如:安徽合肥、上海...,再通过调取百度地图的API来获取相应的经纬度。
url 正确格式应该为:
url = 'http://api.map.baidu.com/geocoder/v2/?address=%s&output=json&ak=你的密钥匙(AK)' % (name)
注意 3 点:
1、在百度地图开放端申请 ak 时,准备用浏览器访问,应用类型就选用 “ 浏览器端 ” ,“启用服务”这一项默认情况下没有全选,所以,打开 url 时若报错,如:{ status 240 message "APP 服务器被禁用" },那你一定要去看看这一项,检查相关的服务有没有打开。
2、url 格式一定要对。
格式不对,会报错:
INVALID_PARAMETERS 非法参数,参数错误时候给出。最后,打开 url 后,输出的形式为:
{"status":0,"result":{"location":{"lng":117.28269909168304,"lat":31.86694226068694},"precise":0,"confidence":12,"level":"城市"}}
3、对于url 中文混搭
如果 name是中文,那么在用urllib.request请求时会报错:
# url 含中文时url = 'http://api.map.baidu.com/geocoder/v2/?address=安徽合肥市s&output=json&ak=uYr0vs7KOcs8I5y6e4Y479CyW6xOC3GV'req = urllib.request.Request(url)print(req)html = urllib.request.urlopen(req) # 获取页面jsons = html.read().decode('utf-8') #转化为str类型#会报错:UnicodeEncodeError: 'ascii' codec can't encode characters
解决:对中文部分进行编码 parse.quote()
#### 处理混合中文的 url,先用 parse.quote()from urllib import parses='安徽合肥市'h = parse.quote(s)url = 'http://api.map.baidu.com/geocoder/v2/?address=%s&output=json&ak=uYr0vs7KOcs8I5y6e4Y479CyW6xOC3GV' % (h)req = urllib.request.urlopen(url)# print(req)html=req.read().decode('UTF-8') #转为 str# html=req.read() #<class 'bytes'># print(type(html))## 输出为:{"status":0,"result":{"location":{"lng":117.28269909168304,"lat":31.86694226068694},"precise":0,"confidence":12,"level":"城市"}}hjson = json.loads(html) # 转化为dict类型lng_lat = ['', '']if hjson['result']: lng = hjson['result']['location']['lng'] # 经度 print(type(lng)) #<class 'float'> # print(lng) lat = hjson['result']['location']['lat'] # 纬度 lng_lat = [lng, lat] print(lng_lat) # 如 :[117.28269909168304, 31.86694226068694]else: print('error')
另:论坛里会有百度地图的相关技术人员发的技术贴,各类错误解释,可以逛逛。
官方介绍
阅读全文
1 0
- 【已解决】调用百度地图API将城市转换为经纬度问题
- 【百度地图API】如何将Google的经纬度批量转换为百度经纬度
- GPS经纬度及谷歌地图坐标转换为百度地图坐标,解决地图显示经纬度的偏移问题
- Adroid利用百度地图将经纬度转换为地址信息
- 将GPS坐标转换成百度地图坐标,将baidu 经纬度 转换为google经纬度
- 【已解决】调用百度地图API出错,地图未显示。
- PHP 调用百度api,将经纬度转化为地址
- 调用百度地图API获取经纬度
- 百度地图api获取经纬度和城市名称
- 调用百度地图api实现标记城市
- 经由过程百度地图API,将百度坐标转换成GPS经纬度
- 通过百度地图API,将百度坐标转换成GPS经纬度
- 通过百度地图API,将百度坐标转换成GPS经纬度
- 通过百度地图API,将百度坐标转换成GPS经纬度
- Android如何根据百度地图api将具体地址转化为经纬度啊
- iphone开发把地址转换为地图经纬度 已解决不支持中文bug
- C#调用百度地图API入门&解决BMap未定义问题
- C#调用百度地图API入门&解决BMap未定义问题
- nginx学习笔记
- java 爬虫(一)
- 关于ping的理解
- 邻接矩阵 遍历 DFS And BFS~~~
- 微信小程序-使用字体图标
- 【已解决】调用百度地图API将城市转换为经纬度问题
- 干货6:链式队
- 矩阵的奇异值分解过程
- SVN入坑总结
- MySQL的安装与配置
- 莫比乌斯反演系数-模板
- 深入理解Java集合框架系列 -第六章 Java集合框架Deque
- 深入剖析 iOS 性能优化
- switch...case