python实现通过百度地图API获得地铁站经纬度(详细教程)

第一步:注册成为开发者,获得AK号

1: 前往百度地图官网注册,注册地址,请点击:百度地址开发者注册
网站如下:http://lbsyun.baidu.com/apiconsole/key/create
2: 注册并邮箱激活后点击申请密钥,:
应用名称随便填写,应用类型选择服务器,IP白名单填0.0.0.0/0就行
提交后就申请到了访问应用(AK)了
在这里插入图片描述
在这里插入图片描述

第二步:运行代码测试

代码如下所示:

import pandas
from bs4 import BeautifulSoup 
from urllib import request
import re
import pandas as pd
import numpy as np
import urllib.parse as urp
from xml.etree import ElementTree
import time

def __get_location1__(name,city):  
        my_ak = '第一步中自己申请的AK号'    # 需要自己填写自己的AK
        tag = urp.quote('地铁站')
        qurey = urp.quote(name)
        try:
            url = 'http://api.map.baidu.com/place/v2/search?query='+qurey+'&tag='+'&region='+urp.quote(city)+'&output=json&ak='+my_ak
            print(url)
            req = request.urlopen(url)
            res = req.read().decode()
            lat = pd.to_numeric(re.findall('"lat":(.*)',res)[0].split(',')[0])
            lng = pd.to_numeric(re.findall('"lng":(.*)',res)[0])
            return (lng,lat)  #经度和纬度
        except:
            return 0,0

第三步:测试用法

输入:

__get_location1__('东直门','北京')

输出:

(116.44145400000001, 39.947891999999996)

当需要很多地址的经纬度时,首先用爬虫爬取地址名称,然后不断调用__get_location1__()就行

第四步:开发者个人认证

对百度地图访问量很大的话,可以申请开发者个人认证,需要进行实名认证手续等!!
在这里插入图片描述

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
利用Python和高德地图API实现经纬度与地址的批量转换是可行的。首先,我们需要准备高德地图的API密钥,该密钥可以通过高德地图开发者平台申请获得。 接下来,我们可以使用Python中的requests库发送HTTP请求,通过调用高德地图的逆地理编码接口,将经纬度转换为地址。我们需要将API密钥和待转换的经纬度构建为合适的URL,并发送GET请求。高德地图API将返回JSON格式的数据,其中包含有关地址信息的详细内容。 在代码中,我们可以使用for循环来遍历经纬度的列表,对每个经纬度调用逆地理编码接口并解析返回的JSON数据。我们可以从返回的数据中提取出地址信息,并将其保存到一个新的CSV文件中。 以下是一个简单的示例代码: ```python import requests import csv api_key = "your_api_key" def get_address(lat, lng): url = f"https://restapi.amap.com/v3/geocode/regeo?key={api_key}&location={lng},{lat}&radius=1000&extensions=all&batch=true&roadlevel=1" response = requests.get(url) data = response.json() address = data['regeocodes'][0]['formatted_address'] return address def main(): with open('input.csv', 'r') as input_file, open('output.csv', 'w', newline='') as output_file: reader = csv.reader(input_file) writer = csv.writer(output_file) writer.writerow(['经度', '纬度', '地址']) for row in reader: lat, lng = row[0], row[1] address = get_address(lat, lng) writer.writerow([lat, lng, address]) print("地址转换完成!") if __name__ == '__main__': main() ``` 在这个示例中,我们假设输入文件是一个CSV文件,其中包含经纬度数据。我们将转换后的地址保存到新的CSV文件中,其中包含经度、纬度和地址信息。 通过运行这个Python脚本,我们可以批量转换经纬度为地址,并将结果保存到输出文件中。这样,我们就可以在后续的工作中方便地使用地址信息了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值