美文网首页
调用高德地图API实现地图可视化

调用高德地图API实现地图可视化

作者: f5065e26181b | 来源:发表于2018-10-14 18:52 被阅读566次

一、摘要

本文主要分为两大步骤,一是Python调用高德地图API,获取已知地名的经纬度,二是使用高德地图可视化平台上实现一键式地图可视化,实现呈现效果如图,对部分开发商项目信息进行显示(数据来源房天下网站):

演示.gif
文章主要参考官方文档和文章Python调用高德地图API实现经纬度换算、地图可视化

二、获取已知地名的经纬度

首先需要在https://lbs.amap.com/上注册,建立项目,生成Key,具体可参照第一部分的参考文章。地理编码/逆地理编码 API 是通过 HTTP/HTTPS 协议访问远程服务的接口,提供结构化地址与经纬度之间的相互转化的能力。地理编码 API 服务地址
https://restapi.amap.com/v3/geocode/geo?parameters
parameters代表的参数包括必填参数和可选参数,这个免费用户一天调用5000次,大规模的服务是要收费的。所有参数均使用和号字符(&)进行分隔。具体代码:

import pandas as pd
import requests
from requests.exceptions import ReadTimeout, ConnectTimeout
import csv

def transform(geo):
    parameters = {'address': geo, 'key': '填写自己申请的Key'}
    base = 'https://restapi.amap.com/v3/geocode/geo'
    loc = 0
    try:
        response = requests.get(base, parameters, timeout=2)
        if response.status_code == 200:
            answer = response.json()
            loc = answer['geocodes'][0]
            loc1 = loc['location']
        else:
            pass
    except (ReadTimeout, ConnectTimeout):
        pass
    return loc1

if __name__ == "__main__":
    loc_data = pd.read_csv("dichan1.csv")
    raw_loc = '西安市' + loc_data["address"]
    with open("dichan2.csv", "a", newline='') as csvfile:
        writer = csv.writer(csvfile)
        i = j =0        
        for item in raw_loc[j:]:
            if isinstance(raw_loc[i + j], str):
                print([item, transform(item)])
                #writer.writerow([item, transform(item)])
            else:
                writer.writerow([raw_loc[i+j], 0])
                i = i + 1

输出如下:


输出.PNG

此处要注意读取CSV文件可能编码的问题,解决方案:用python3读csv文件,出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid con

三、地图可视化

按照“数据可视化”,“创建可视化项目”,“上传数据”的流程进行创建。


流程.PNG

根据系统提示,选择自己需求进行构建。


数据可视化.PNG
最终效果为开篇的图。

相关文章

网友评论

      本文标题:调用高德地图API实现地图可视化

      本文链接:https://www.haomeiwen.com/subject/vzltzftx.html