分析周边地点距离和坐标
地址转经纬度
import pandas as pd
import requests
def get_baidu_position(address):
AK = '8rVGMDfibmsnRqkXrmdEUiv43pBuslsM'
url = f'http://api.map.baidu.com/geocoding/v3/?address={address}&output=json&ak={AK}'
res = requests.get(url)
val = res.json()
retval = {'地址':address,'经度':val['result']['location']['lng'],'纬度':val['result']['location']['lat'],'地区标签':val['result']['level'],'是否精确查找':val['result']['precise']}
longitude = retval['经度']
latitude = retval['纬度']
return(longitude,latitude)
def get_geocode_position(address):
'''
接口文档:https://lbs.amap.com/api/webservice/guide/api/georegeo/
'''
url = 'http://restapi.amap.com/v3/geocode/geo?parameters'
params = {
'address': address,
'output': 'json',
'key': '45a5047ed6f38e32576cd205e9f4360f'
}
answer = requests.get(url, params).json()
location = answer['geocodes'][0]['location'].split(',')
return location
address = '广州市黄埔区政府'
lo1 = get_geocode_position(address)
lo2 = get_baidu_position(address)
print(lo1, lo2)
# ['113.443119', '23.160726'] (113.45074282589162, 23.165871953067143)
地图坐标可视化
import folium
import pandas as pd
addr = '广州市黄埔区政府'
Longitude_and_latitude = get_geocode_position(addr)
Map = folium.Map(location=[Longitude_and_latitude[1], Longitude_and_latitude[0]],
zoom_start=14,
tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',#影像图:http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
attr='default'
)
folium.Circle([23.160750,113.443119], 3000,color='red',fill_color='red',fillOpacity=0.5).add_to(Map)
Longitude_and_latitude = get_geocode_position('广州市黄埔区政府')
folium.Marker([Longitude_and_latitude[1], Longitude_and_latitude[0]], popup=folium.Popup(names[i], max_width=1000), tooltip=names[i]).add_to(Map)
Map
pyecharts
# from pyecharts.charts import Geo
# from pyecharts import options
# from pyecharts.globals import GeoType
# addr = '广州市黄埔区联合街道光谱中路11号'
# Longitude_and_latitude = get_baidu_position(addr)
# print(Longitude_and_latitude)
# longitude = Longitude_and_latitude[0]
# latitude = Longitude_and_latitude[1]
# g = Geo().add_schema(maptype="广州")
# g.load_javascript()
# g.add_coordinate(addr, longitude, latitude)
# data_pair = [(addr,1)]
# g.add('',data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=20)
# g.set_series_opts(label_opts=options.LabelOpts(is_show=False))
# g.set_global_opts(title_opts=options.TitleOpts(title="pyecharts地图标点测试"))
# g.render_notebook()