class GetInfo:
def __init__(self,df):
import pandas
assert type(df) == pandas.core.frame.DataFrame and ('city' in df.columns) and ('name' in df.columns),\
'The dataframe is not vailid'
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
self.__data__ = df
def get_location(self):
self.__data__['lng'] = np.nan
self.__data__['lat'] = np.nan
for i in self.__data__.index:
self.__data__.loc[i,'lat'],self.__data__.loc[i,'lng'] = self.__get_location1__(self.__data__.loc[i,'name'],\
self.__data__.loc[i,'city'])
return self.__data__
def __get_location1__(self,name,city):
my_ak = ###换上自己的AK##
tag = urp.quote('地铁站')
qurey = urp.quote(name)
try:
url = 'http://api.map.baidu.com/place/v2/search?query='+qurey+'&tag='+'®ion='+urp.quote(city)+'&output=json&ak='+my_ak
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 lat,lng
except:
return 0,0
从百度地图api获取地铁站经纬度
猜你喜欢
转载自blog.csdn.net/weixin_41968760/article/details/80663578
今日推荐
周排行