m0_50614229 2022-02-23 16:57 采纳率: 40%
浏览 61
已结题

关于百度地图API上数据的爬取地理编码和逆地理编码不匹配的问题

用百度地图API爬取一个地理位置的经纬度如:朝鲜

其代码如下:

import requests
import json
import re
AK='自己的ak'
address='朝鲜'
url='http://api.map.baidu.com/geocoding/v3/?address={}&output=json&ak={}&callback=showLocation'.format(address,AK)
res = requests.get(url)
print(res.text)

运行结果为:

showLocation&&showLocation({"status":0,"result":{"location":{"lng":108.42128307895369,"lat":23.934177647695177},"precise":0,"confidence":50,"comprehension":0,"level":"村庄"}}

因为想利用folium包在地图上对该位置进行标注发现:
该位置对应的并非朝鲜,而是地图上广西的一个地方:

img

于是将刚刚从api上获取的经纬度进行逆地理位置查询:

lat='23.934177647695177'
lng='108.42128307895369'
url=url = 'http://api.map.baidu.com/reverse_geocoding/v3/?ak={}&output=json&coordtype=wgs84ll&location={},{}'.format(AK,lat,lng)
res=requests.get(url)
print(res.text)
address=json.loads(res.text)['result']['formatted_address']

print('\n')
print('address is ',address)


运行结果为:

{"status":0,"result":{"location":{"lng":108.43201338669323,"lat":23.93732458871083},"formatted_address":"广西壮族自治区南宁市马山县","business":"","addressComponent":{"country":"中国","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN","province":"广西壮族自治区","city":"南宁市","city_level":2,"district":"马山县","town":"","town_code":"","distance":"","direction":"","adcode":"450124","street":"","street_number":""},"pois":[],"roads":[],"poiRegions":[],"sematic_description":"","cityCode":261}}
address is  广西壮族自治区南宁市马山县

果然是广西的地方,与前面的就矛盾了呀,请问为什么会这样

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题