利用python批量获取经纬度坐标(基于百度地图API)的代码

import requests
import time


def get_mercator(addr):
    url = 'http://api.map.baidu.com/geocoder/v2/?address=%s&output=json&ak=你的秘钥&callback=showLocation' % (addr)
    response = requests.get(url)
    return response.text


def writeline(src, dest):
    count = 0
    ms = open(src, encoding='utf-8')
    num = ms.readlines()
    print(len(num))
    print("-------------------")
    for line in num:
        with open(dest, "a", encoding='utf-8') as mon:
            loc = get_mercator(line)
            # lng_lat = eval(loc[27:-1])["result"]['location']
            # print(lng_lat)
            # mon.write(str(lng_lat))
            print(loc)
            mon.writelines(loc)
            mon.write("\n")
            time.sleep(0.1)
            count += 1
        print("第" + str(count) + "条数据写入成功...")
writeline(r"你的文件路径\address_test.txt", r"你的文件路径\address_results.txt")
  • 文件示例

 

空间计量是指在地理信息系统(GIS)领域中,通过编程技术如Python,结合特定的地图服务API,比如百度地图API,来自动化地获取地理位置信息,如经纬度坐标。在Python中,你可以利用`bmap`库或者其他第三方封装的百度地图接口,如`geopy`,来进行批量地点的坐标查询。 以下是简单的步骤: 1. 首先,你需要安装所需的库,例如`requests`用于发送HTTP请求,`geopy`用于处理百度地图的返回数据。可以使用`pip install requests geopy bmap`命令安装。 2. 导入必要的模块并初始化百度地图API: ```python from baidubmap import BaiduMap import geopy # 创建BaiduMap实例 bm = BaiduMap() ``` 3. 定义一个函数,输入地点名称或地址,调用百度地图API获取经纬度: ```python def get_location_by_address(address): location = geopy.geocoders.BaiduGeocoder(api_key=YOUR_API_KEY) # 请替换为你自己的百度地图API key result = location.geocode(address) if result: return (result.latitude, result.longitude) else: print(f"无法获取{address}的位置信息") return None ``` 4. 批量获取经纬度时,可以用列表或其他数据结构存储待查询的地址,然后遍历: ```python locations = ['北京故宫', '上海外滩', '广州塔'] # 地点列表 results = [get_location_by_address(loc) for loc in locations] ``` 5. 最后,`results`将是一个包含所有查询结果的列表,每个元素都是一个包含经纬度的元组。 注意:在实际应用中,需要确保你有合法有效的百度地图API密钥,并遵守其使用规定。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值