目前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出的轻量级可视化平台上实现一键式地图可视化,这其中需要申请密钥、批量经纬度换算、地图平台可视化操作等等。
第一步:注册密钥
第二步:构造url参数获取经纬度
https://restapi.amap.com/v3/geocode/geo?parameters
parameters代表的参数包括必填参数和可选参数。所有参数均使用和号字符(&)进行分隔。
1importpandasaspd 2importrequests 3fromrequests.exceptionsimportReadTimeout,ConnectTimeout 4importcsv 5 6 7deftransform(geo): 8parameters={‘address’:geo,’key’:’c69bd09bde2e2117eff53df9b89750a8′} 9base=’https://restapi.amap.com/v3/geocode/geo’10loc=011try:12response=requests.get(base,parameters,timeout=2)13ifresponse.status_code==200:14answer=response.json()15loc=answer[‘location’]16else:17pass18except(ReadTimeout,ConnectTimeout):19#ConnectTimeout指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。ReadTimeout指的是建立连接后从服务器读取到可用资源所用的时间。20pass21returnloc222324if__name__==”__main__”:25loc_data=pd.read_csv(“../kfc_china_stores.csv”)26raw_loc=loc_data[“city”] loc_data[“address_raw”]27withopen(“d:/kendeji.csv”,”a”,newline=”)ascsvfile:28#a表示追加写入,w表示写入29writer=csv.writer(csvfile)30#先写入columns_name31#writer.writerow([“city”,”geo_loc”])32i=033j=034foriteminraw_loc[j:]:35ifisinstance(raw_loc[i j],str):36print([item,transform(item)])37#表处于关闭状态才能写入或者追加写入38writer.writerow([item,transform(item)])39else:40writer.writerow([raw_loc[i j],0])41i=i 1
这样我们就批量得到了经纬度,本来是在高德平台上是需要自己去调试JS代码来生成地图的,但是高德地图已经开发了轻量级的可视化平台,给没学过JS的我留了条活路,接下来就利用高德地图可视化平台直接一键式生成地图文件。
在个人的控制台里面有个数据可视化窗口,直接一步步创建自己的可视化项目即可。