百度逆地理编码的使用


运营商基站数据混乱,考虑GPS位置编码完善基站数据。

一、百度地图开放平台

百度地图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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值