arcgis 获取json经纬度_城市路网实时路况爬取与ArcGIS可视化

本文介绍了如何使用Python爬取高德地图API获取城市路网实时路况和行政区地理信息,通过ArcGIS进行数据可视化。主要步骤包括Python请求API,解析JSON数据,CSV存储, ArcGIS数据导入与处理,最终实现路况信息的点集转线并进行标注展示。
摘要由CSDN通过智能技术生成

57da302310ecd9bad67b585f54db4d7f.png

1、目标

通过高德地图API进行城市路网实时路况数据爬取、城市行政区地理信息数据爬取与城市交通拥堵态势可视化。

2、使用的工具

Python3.6 IDLE、Excel2016、记事本编辑器、ArcGIS 10.5、申请的高德开发者KEY(免费)。

3、主要思路

本文的思路是使用Python的requests模块爬取高德API的返回信息,将返回的信息数据(JSON),通过代码解析的方式存入CSV文件中,再导入ArcGIS中进行可视化处理。

4、高德对用户的API行为限制问题的解决

根据高德提供的交通态势信息API文档,注意到高德提供了两种获取交通态势信息的方式,一种是通过设定矩形区域(传入左下角以及右上角坐标)的方式,一种是通过设定圆形区域的方式(设定圆心坐标和半径),本文使用的是设定矩形区域的方式。 但是问题来了,高德对用户的API行为进行了限制,要求设定的矩形区域的对角线长度不超过10公里,但这是难不倒程序猿的,可以使用网格的思想来突破这一限制,如下图:

e555b1d6e864db99196d0ff7fc7ced9f.png

即将爬取区域分成多个网格,每个网格在高德规定的10公里范围之内即可,这样虽然增加了API的调用次数,但不得不说是较为合适的解决方案,本思想同样也适用于POI信息的爬取,在本文中笔者使用了简单的for循环来实现网格爬取,当然读者也可以参考:

百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制。 这篇博文中的LocaDiv类来实现更为复杂化的网格爬取方式。

5、具体做法

  • 5.1 python 工具包安装,本文需要requests、pandas、 json和time包

安装方法:

摁WIN键+R键打开运行,然后输入cmd,回车进入命令提示符。

输入,pip install+python包

如 pip install requests

  • 5.2 路况数据爬取

5.2.1 申请key(注意要申请绑定服务为web服务的key)

e9d5b9b228fa0a75cdf4796ea142bde5.png

5.2.2 路况数据获取

选择路况拥堵状态的API接口,需要输入的数据包括你的key、区域选择方式(矩形,圆域)详见交通态势信息API文档

示例:

矩形

'https://restapi.amap.com/v3/traffic/status/rectangle?rectangle='+str(loc)+'&key=你的密钥'

loc为选择矩形区域左下角的经纬度,如120.247875,31519864

圆形

"https://restapi.amap.com/v3/traffic/status/circle?location=116.3057764,39.98641364&radius=1500&key=你的密钥&extensions=all"

本文以矩形为例

首先输入代码,运行代码后,从与代码所在同一文件夹中获得文件BigRoads.csv,.csv文件可由Excel或记事本打开

import requests
import pandas as pd
import json
import time
 
#初始API的URL
url="https://restapi.amap.com/v3/traffic/status/rectangle?key=你的密钥&extensions=all&rectangle="
 
#设定整个网格左下角坐标的经纬度值
baselng=119.
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值