前言
通过百度地图,腾讯地图等,可以进行具体地址和经纬度数据中间的转换。
复制代码
准备工作
到百度地图开放平台,申请ak,正常情况下,一天只能免费用6000次,https:
每次请求服务,最好间隔一定的时间,比如0.2秒
或者到腾讯位置服务,申请key,https:
复制代码
1/使用腾讯地图代码
import pandas as pd
import numpy as np
import myutil
import requests
import datetime
from tqdm import *
import time
from loguru import logger
import xlrd
import csv
import json
pd.set_option('display.max_rows',None)
pd.set_option('display.max_columns',None)
pd.set_option('max_colwidth',500)
pd.set_option('display.width',10000)
tengxun_map_developer_key = xxxxxxx
def address_to_coordinate(address):
url = "http://apis.map.qq.com/ws/geocoder/v1/?address={}&key={}".format(address, tengxun_map_developer_key)
response = requests.get(url)
answer = response.json()
if answer['status'] == 0:
lng = answer['result']['location']["lng"]
lat = answer['result']['location']["lat"]
else:
lng = np.nan
lat = np.nan
print("没有获得具体的经纬度!!!")
return lng,lat
def coordinate_to_address(lat_lng):
url = "https://apis.map.qq.com/ws/geocoder/v1/?location={}&get_poi={}&key={}".format(lat_lng, 1,tengxun_map_developer_key)
response = requests.get(url)
answer = response.json()
if answer['status'] == 0:
address = answer['result']['address']
else:
address = 'error'
print(address)
return address
复制代码
2/使用百度地图代码
import pandas as pd
import numpy as np
import myutil
import requests
import datetime
from tqdm import *
import time
from loguru import logger
import xlrd
import csv
import json
pd.set_option('display.max_rows',None)
pd.set_option('display.max_columns',None)
pd.set_option('max_colwidth',500)
pd.set_option('display.width',10000)
baidu_map_developer_key = xxxxxxx
def get_location_from_baidu_map(addr):
url = "http://api.map.baidu.com/geocoding/v3/?"
para = {"address": addr,
"output": "json",
"ak": baidu_map_developer_key
}
req = requests.get(url,para)
req = req.json()
if req["status"] == 0:
lng = req["result"]["location"]["lng"]
lat = req["result"]["location"]["lat"]
else:
lng = np.nan
lat = np.nan
return lng,lat
复制代码