geo-tool 解析百度经纬出错 {‘status‘: 240, ‘message‘: ‘APP 服务被禁用‘}

news2024/11/17 5:51:48

geo-tool 解析百度经纬出错 {'status': 240, 'message': 'APP 服务被禁用'}

      • 引子
      • 一、查错
      • 二、排错
      • 三、测试通过
      • 参考

作者:高玉涵

时间:2023.6.25

环境:Windows 10 专业版 22H2,Python 3.10.4

第三方包:geo-tool 1.1.2

引子

近日,在做一个项目需要使用百度地图提供的地理编码 API 来完成从物理地址到经纬度的转化。实践过程中纯手工调用百度 API 较为繁琐,就想查找一下是否有人已经实现了这个服务的通信协议。

因此查阅了 Python 包索引(https://pypi.python.org)输入关键字百度地理搜索,返回结果中的第一条记录为 geo-tool 的包(https://pypi.org/project/geo-tool/)这个包提供了简洁的接口来获取百度、高德和谷歌的地理编码服务(从包名可以注意到,这个包并非由官方提供,而是第三方开发者开发的)。遂安装并按着示例使用,意外收到 {‘status’: 240, ‘message’: ‘APP 服务被禁用’} 的错误信息。

一、查错

搜索百度给出的结论是自己创建 AK 时设置有问题,实际检查设置没有问题。

在这里插入图片描述

继续搜索找到以下官方回复。

在这里插入图片描述

参考最新官方文档发现更新之后请求的 URL 发生了改变。

旧 URL:

http://api.map.baidu.com/geocoder/v2/?location=34.35555,107.32518&output=json&ak=你的AK&pois=1

新 URL:

http://api.map.baidu.com/reverse_geocoding/v3/?ak=你的AK&output=json&coordtype=wgs84ll&location=31.225696,121.49884

在上述 URL 填上自己的 AK 来测试。

二、排错

知道故障原因,接下来的事情就好办了。进入到存放 geo-tool 包源文件位置,修改 URL 为新的即可。步骤如下:

  1. Lib\site-packages\geo_tool

  2. baidu_geo.py(因我只使用了百度,所以只需修改这个文件)

  3. BaiduGeo 类,修改 address2geo、geo2address 方法中的 url 变量指向。

在这里插入图片描述

  1. 保存修改并退出。

三、测试通过

继续用示例来测试。

from geo_tool import BaiduGeo

baidu_map_key = '你的 AK'
print(BaiduGeo(baidu_map_key).geo2address(22.52955, 113.93078))
print(BaiduGeo(baidu_map_key).get_city_name_by_geo(22.52955, 113.93078))
print(BaiduGeo(baidu_map_key).address2geo('北京市海淀区上地十街10号'))

物理地址到经纬度的转化成功,故障排除。

{'status': 0, 'result': {'location': {'lng': 113.93077999999997, 'lat': 22.52954999936777}, 'formatted_address': '广东省深圳市南山区桂庙路65', 'edz': {'name': ''}, 'business': '南油,南头,桂庙路口', 'addressComponent': {'country': '中国', 'country_code': 0, 'country_code_iso': 'CHN', 'country_code_iso2': 'CN', 'province': '广东省', 'city': '深圳市', 'city_level': 2, 'district': '南山区', 'town': '南 
山街道', 'town_code': '440305002', 'distance': '31', 'direction': '附近', 'adcode': '440305', 'street': '桂庙路', 'street_number': '65'}, 'pois': [], 'roads': [], 'poiRegions': [], 'sematic_description': '', 'formatted_address_poi': '', 'cityCode': 340}}
深圳市
{'status': 2, 'msg': 'Request Parameter Error: lack address or location', 'results': []}

参考

  • geo-tool · PyPI

  • 百度地图API报{“status”:240,“message”:“APP 服务被禁用”},APP服务被禁用_振钧的博客-CSDN博客

  • 逆地理编码 gc | 百度地图API SDK (baidu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【模拟CMOS集成电路】HSPICE入门仿真分析实例

【模拟CMOS集成电路】HSPICE入门仿真分析实例 一、采用HSPICE的MOS器件仿真二、INV倒相器HSPICE仿真附录程序源码(一)程序源码(二) 一、采用HSPICE的MOS器件仿真 一、采用HSPICE的MOS器件仿真, 并回答以下问题。   1&#xff0…

Visual Studio 2019使用详解

VS2019(Visual Studio 2019)是由微软开发的集成开发环境(IDE),用于开发各种应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。 对工具的熟悉程度有助于提升开发效率,磨刀不误砍柴功&am…

solr快速上手:整合spring-data-solr实现客户端操作(十)

0. 引言 前一章介绍了官方的solr客户端SolrJ,但是solrJ的使用相对来说并不方便,仍然需要做一些负责的客户端操作以及语句的书写,有没有更加方便的ORM框架呢,这就提到了spring-data-solr了 1. 简介 首先如果你还不知道spring-da…

面试题:深拷贝和浅拷贝(+内存图)

深拷贝和浅拷贝主要是针对对象的属性是对象(引用类型) 一、基本类型和引用类型的区别 1)、基本类型:就是值类型,即在变量所对应的内存区域存储的是值。 2)、引用类型:就是地址类型。 何为地…

Kubeadm 部署k8s实现并且演示滚动不停服务更新

1. 环境准备 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64;硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多;集群中…

【Activiti】原理

一、核心类 RepositoryService:部署管理流程资源,如bpmn文件、附件等等;RuntimeService:操作运行时的流程;TaskService:流程中任务的信息;HistoryService:流程的历史信息&#xff1…

ZYNQ——按键和LED关联实验

ZYNQ 7020黑金开发板的PL端有四个LED,如下图所示。 PL端也有四个KEY,如下图所示。 本文将把这四个按键和四个LED一一对应起来,在按键按下或松开时,对应的LED产生亮或灭的信号。 在原理图中找到PL端的LED和KEY如下图所示。 通过…

成为python爬虫工程师需要哪些知识?

爬虫(Web crawler)是一种自动化程序,用于从互联网上抓取、解析和提取网页数据。它模拟浏览器行为,通过发送HTTP请求获取网页内容,并通过解析网页源代码或DOM结构,提取所需的信息。以python爬虫为例&#xf…

优思学院|作业标准和标准化作业有何区别?傻傻搞不清?

作业标准和标准作业是两个在生产和制造环境中具有重要意义的概念。尽管它们看似相似,但实际上它们在定义、目的和实施方法上存在显著差异。本文将探讨作业标准和标准作业的区别,以及它们在工作场所中的作用和重要性。 1. 引言 在制造领域中&#xff0c…

JDBC小记——SQL注入及预编译操作对象、批处理

目录 SQL注入 预编译操作对象 自定义JDBC工具类 1.创建配置文件 2.配置 3.在工具类中使用配置文件 批处理 注意事项 SQL注入 SQL注入是黑客对数据库进行攻击的常用手段之一,他们拼接一些恶意的sql语句,来获取他们想要的数据。 例: s…

Bpmn.js流程建模结合业务整合工作流(一)

bmpn.js是什么? 先上图 初步认识bpmn.js 相关文档直接上链接 全网最详bpmn.js教材-基础篇 - 掘金bpmn.js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成. 因为公司业务的需要因而要在项目中使用到bpmn.js,但是由于bpmn.js的开发者是国外友人, 因此国…

【2023年中总结】是的,我从一家世界前百强企业毕业了,进入了一家只有20人的小企业。。。

我的2023-上 🕐 一、引言🕜 二、新年🕙 三、措手不及🕥 四、抉择🕚 五、适应🎉测试驱动开发🎉角色的转变🎉工作环境和生活环境的转变🎉工作态度 🕦 六、挑战&…

【裸机开发】定时器中断(EPIT)

EPIT 是周期性中断定时器,会定期调用指定的中断服务函数,其实可以看做是一种IRQ的外设中断,对应的中断ID是88(5632)或者 89(5732)。 目录 一、定时器计数流程 二、寄存器解析 1、EPIT1_CR 2…

骨传导耳机、运动耳机推荐:南卡OE开放式TWS耳机值得买吗?南卡OE测评

目前,如果说到骨传导耳机、蓝牙耳机想必大家都很熟悉,那你了解TWS耳机么? 如果说iPhone“重新定义”了智能手机,那么AirPods就重新定义了耳机——它“断”了耳机与手机/播放器间的连线,还将左右耳彼此间的连线彻底摒弃…

SimpleDateFormat显示24小时和12小时时间格式

public static void main(String[] args) throws Exception {MainTest1 mainTest1 new MainTest1();mainTest1.dateFormat();} yyyy-MM-dd HH:mm:ss格式显示的时间为:2017-06-12 18:01:06 yyyy-MM-dd hh:mm:ss格式显示的时间为:2017-06-12 06:01:06

二章:VMvare虚拟机的安装+VMvare安装winServer2008

目录 一、Vmware软件安装 二、Vmware软件注册 三、Vmware配置虚拟机-1 四、Vmware配置虚拟机-2 五、Vmware配置虚拟机-3 六、Vmware安装windows server 2008 一、Vmware软件安装 第一步 双击安装程序,点击下一步。 第二、三步 勾选接受许可,点击下一步。…

SAM【1】:Segment Anything

文章目录 前言1. Abstraction & Introduction1.1. Abstraction1.2. Introduction 2. Segment Anything Model2.1. Segment Anything Task2.1.1. Task2.1.2. Pre-training2.1.3. Zero-shot transfer 2.2. Segment Anything Model Methods2.2.1. Image Encoder2.2.2. Prompt …

python:并发编程(二十三)

前言 本文将和大家一起探讨python并发编程的实际项目:win图形界面应用(篇五,共八篇),系列文章将会从零开始构建项目,并逐渐完善项目,最终将项目打造成适用于高并发场景的应用。 本文为python并…

微信小程序快速入门【二】

微信小程序快速入门【二】 文章目录 微信小程序快速入门【二】👨‍🏫内容1:背景👨‍⚖️内容2:项目结构👨‍💻内容3:项目配置文件app.json👨‍🚀内容4&#x…

SpringBoot使用入门和案例实现

目录 1. 在pom.xml中添加依赖2. 编辑resources/application.properties3. 编写springboot的主程序4. 编写Controller程序5. IDEA本地测试6. 打包上传到服务器运行 1. 在pom.xml中添加依赖 步骤如下: 添加springboot的parent依赖添加springboot的starter-web依赖。…