利用高德api及arcgis制作等时线的方法

等时线在交通规划里面分析可达性还是挺有用的。那么分析现状的某种交通方式的等时线,可以通过爬取高德、百度等的路径规划数据,然后在arcgis里面生成。arcgis的网络分析做服务区等时线以后有时间分享一下。

第一步,爬取POI

爬取POI网上工具很多啦,也有不少人分享,可以很方便的下载到,如果找不到,也可以自己写爬虫爬取,例如高德的:

具体的参数可以查看api文档https://lbs.amap.com/api/webservice/guide/api/search,其中types、city、page需要,其他好像都不用。

返回的eval(res.text)[‘pois’]就是各个poi点的坐标,可以自己写到文件什么的下一步提取使用,我们只需要提取坐标就好了。

第二步,获取某个起始点到各个POI点的行程时间

比如开车,一个点到一个点的路径规划按下面方法获取:

具体不同交通方式、不同参数什么的都可以查文档https://lbs.amap.com/api/webservice/guide/api/direction

总的行程时间就是:eval(res.text)[‘route’][‘paths’][0][‘duration’],当然也可以提取各个段的时间。

好了,按上述方法,构建一个循环什么的,就可以查询起点到很多个poi目的点的行程时间了

现在我们得到三列数据:

经度、纬度、行程时间

写入csv文件,接下来就在arcgis里面操作了。

第三步,生成点

首先,高德获取的点是火星坐标,可以根据网上各种算法,转成标准84坐标。当然也可以先生成点,导出shp再根据我上上篇文章用qgis转。

csv转点,还是比较简单的,arcgis目录里面把csv文件拖到内容列表里来,然后右键显示xy数据,X字段就是经度,Y字段就是纬度,坐标系为WGS84,生成出来就是一个点事件,导出shp就可以保存了。

建议输出为投影坐标系,地理坐标系分析的时候可能会产生问题


第四步,生成TIN

打开arctoolbox,找到3D analyst工具-数据管理-TIN-创建TIN,高度值就选时间字段


第五步,TIN转等值线或等值面

arctoolbox-3D analyst工具-表面三角化-表面等值线,等值线间距根据事实情况自己调整,然后就完成了。

arctoolbox-3D analyst工具-转换-由TIN转出-TIN转栅格,这个转出来的直接就相当于是个面,不过是个栅格面,可以可以研究一下转矢量面

上面都可以自己调整一下符号系统显示效果。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax