百度逆地理编码的使用


一、百度地图开放平台

百度地图API:https://lbsyun.baidu.com/

二、使用步骤

1.申请AK

在这里插入图片描述


2.全球逆地理编码的使用

全球逆地理编码服务是一类Web API接口服务;
逆地理编码服务提供将坐标点(经纬度)转换为对应位置信息(如所在行政区划,周边地标点分布)功能。
服务同时支持全球行政区划位置描述及周边地标POI数据召回(包括中国在内的全球200多个国家地区);

代码单个案例测试

AK = '********'
import requests
address="32.01765,112.13633"
print(address,type(address))
url = 'https://api.map.baidu.com/reverse_geocoding/v3/?ak=%s&output=json&coordtype=wgs84ll&location=%s&extensions_town=%s'% (AK, address,'true')
respose = requests.get(url)
answer = respose.json()
print(answer)
baidu_cell_name = answer['result']['formatted_address']
baidu_adcode = answer['result']['addressComponent']['adcode']
baidu_district = answer['result']['addressComponent']['district']
baidu_town_code = answer['result']['addressComponent']['town_code']
baidu_town = answer['result']['addressComponent']['town']
baidu_street = answer['result']['addressComponent']['street']
print(baidu_adcode, baidu_district, baidu_town_code, baidu_town, baidu_street)

在这里插入图片描述

代码批量更新

AK = '*'
def sql():
    #conn = pymysql.connect('10.36.152.*', 'root', '*', 'activity_temp')  # 目标库
    conn = cx_Oracle.connect('xy_report', '*', '*:50000/*')  # 源库

    cursor = conn.cursor()
    sql_select = "SELECT distinct longitude,latitude FROM xy_jz_detail where baidu_town is null"
    cursor.execute(sql_select)
    data = cursor.fetchall()
    for pos in data:
        print(pos[0], pos[1])
        address = "" + str(pos[1]) + "," + str(pos[0])
        url = 'https://api.map.baidu.com/reverse_geocoding/v3/?ak=%s&output=json&coordtype=wgs84ll&location=%s&extensions_town=%s' % (AK, address, 'true')
        respose = requests.get(url)
        answer = respose.json()
        baidu_cell_name = answer['result']['formatted_address']
        baidu_adcode = answer['result']['addressComponent']['adcode']
        baidu_district = answer['result']['addressComponent']['district']
        baidu_town_code = answer['result']['addressComponent']['town_code']
        baidu_town = answer['result']['addressComponent']['town']
        baidu_street = answer['result']['addressComponent']['street']
        print(baidu_adcode, baidu_adcode, baidu_district, baidu_town_code, baidu_town, baidu_street)

        sql_update = "UPDATE xy_jz_detail set baidu_adcode =" + "'" + str(baidu_adcode) + "', " \
                         "baidu_district =" + "'" + str(baidu_district) + "', " \
                         "baidu_town_code =" + "'" + str(baidu_town_code) + "', " \
                         "baidu_town =" + "'" + str(baidu_town)  + \
                         "' where longitude ='" + pos[0] + "' and latitude ='" + pos[1] + "'and baidu_town is null "
        cursor.execute(sql_update)
        conn.commit()
    cursor.close()
    conn.close()


sql()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
地理编码的Python实现可以使用百度地图API来实现。首先,你需要申请一个百度API的key。然后,你可以通过调用接口来进行地理编码操作。需要注意的是,地理编码返回的是百度坐标,而进行地理编码地址查询时,需要输入WGS84坐标。以下是一个示例代码: ```python import requests def reverse_geocoding(address): url = 'http://api.map.baidu.com/geocoder?output=json&key=你的key&location=' + str(address) response = requests.get(url) answer = response.json() return answer address = '39.83637707633588,115.58006911450369' result = reverse_geocoding(address) print(result) ``` 在这个示例中,你需要将'你的key'替换为你申请到的百度API的key。然后,你可以调用`reverse_geocoding`函数,并传入一个坐标作为参数来进行地理编码。函数将返回一个包含地理位置信息的JSON对象。 请注意,这只是一个简单的示例,实际应用中你可能还需要处理异常情况和其他参数的设置。你可以参考百度地图API的文档来了解更多关于地理编码的参数和用法。 参考资料: <http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=> <http://api.map.baidu.com/geocoder/v2/?address=&output=json&ak="ak"> <http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad><span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python实现(百度地图API)地理编码地理编码](https://blog.csdn.net/qq_33356563/article/details/86559720)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python用高德和百度API实现(正)地理编码](https://blog.csdn.net/weixin_39626452/article/details/91346446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值