基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

作者:暂时匿名

 

等时圈(siochrone),指从某点出发,以某种交通方式在特定时间内能到达的距离覆盖的范围(来自于网络)。(An isochrones is an isoline for travel time, that is a curve of equal travel time. Closely related is isodistance, which is a curve of equal travel distance. Typically these are based upon following transportation routes such as public transit, roadways, or foot paths rather than using a simple circle (a.k.a. buffer of a point, "as the crow flies" distance)(https://wiki.openstreetmap.org/wiki/Isochrone))。如果以某一公共服务设施出入口为起点计算等时圈,即可了解该设施的服务半径,再进一步叠加居住小区,还可以分析服务人口。

一、高德路径规划API介绍

高德路径规划API(https://lbs.amap.com/api/webservice/guide/ api/direction#introduce)“是一套以HTTP形式提供的步行、公交、驾车查询及行驶距离计算接口,返回JSON或XML格式的查询数据,用于实现路径规划功能的开发。”路径规划返回结果参数包含“起点和终点距离(米)”和“预计时间(秒)”,通过返回的预计时间制作等时圈。现以驾车接口为例进行介绍。驾车路径规划接口含十几个参数(见图1),其中四个为必选:起点经纬度、终点经纬度、返回数据及高德key,见图2;驾车路径规划中还有一个重要的参数,及驾车选择策略(strategy),这个参数会影响驾车时间及距离。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                       图1 高德驾车路径规划API参数要求

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                         图2 高德驾车路径规划API必填参数

二、模板设计思路

那如何通过这个驾车路径规划接口来计算等时圈呢?首先要确定起点,及需要计算等时圈的预估地域范围(即,半径范围);其次,通过在这个半径范围内均匀的打点作为驾车的终点(等时圈的经度与打点密度相关),三是构建URL获取json数据,并解析出时间及距离的数值,四是以每个终点到起点的时间为参数,进行插值分析得到等时圈图。

需要注意的是:一、预估半径的大小直接关系到等计算出的等时圈是否符合要求(如要2小时等时圈,却只计算出1.5小时或是3小时);二、由于规划路径考虑路况,因此,不同时间计算出的等时圈会存在差异。

三、模板介绍

模板全览,编写完成的基础版的等时圈计算模板见图3、图4。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                    图3 基础版的等时圈计算模板(1)

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例                                                                         图4 基础版的等时圈计算模板(2)

1、设定自定义参数。为了便于重复使用及构建自定义转换器,首先,先定义构建URL必需的起点经纬度、预估半径、网格密度及高德key,见图5,需要注意的是这些都为必要参数,因此参数设定时“optional”(可选)不能打钩,这样未填写参数将无法按“确定”键,以保证参数的完整性。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                          图5 必要参数设定的注意事项

2、用户参数的获取与起点的构建。“Creator”构建模板的起点;“ParameterFetcher”用于获取用户自定义参数,参数设置见图6,这些属性都为过程属性,命名都以“_”开头,这是为了便于后面批量的删除;“AttributeSplitter”将经纬度集拆分;“VertexCreator”创建起点几何图形。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                                图6 “ParameterFetcher”参数设定

3、预估距离缓冲构建及网格划分。一是由于传入的坐标参数为经纬度,做缓冲分析是按照长度度量单位,需用“Reprojector”将地理坐标系转为平面坐标系;二是“GeographicBufferer”,以起点为中心,以预估距离为半径画圆(当然也可以画成方形“End Cap Style”选“Square”即可);三是“2DGridAccumulator”,以“GeographicBufferer”生成的圆形的外接正方形为主体,以网格密度(大小)为划分单元划分网格;四是用“SpatialFilter”过滤“GeographicBufferer”创建网格,仅保留缓冲区内的网格。

4、网格中心坐标的提取与URl的构建。用“Reprojector”将平面坐标转化成地理坐标,并用“CenterPointReplacer”提取网格的中心点,提取的中心点与网格叠加效果见图7;接着用“CoordinateRounder”,对中心点坐标小数点设置保留6位有效数字(这是因为高德的接口经纬度坐标小数点后面的数据不能超过6位,否则会报错),并用“CoordinateExtractor”,提取网格中心点坐标作为路径规划的目的地坐标;最后用“AttributeCreator”,构建用于获取行驶/步行/骑行/驾车路径的URL见图8。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                                     图7 网格与中心但坐标叠加效果

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                         图8 “AttributeCreator”参数设定

 

5、时间数据的获取与保存。一是“HTTPCaller”,以前面构建的“_URL”为网址获取规划路径的响应体;二是“JSONFragmenter”,提取时间与距离数据,“JSON Query”设定了三个条件,这主要是因为驾车、公共交通与骑行等3种路径规划的JSON数据机构不同,需要不同的解析参数,见图9;接着通过“SpatialFilter”,将获取的距离与时间属性传递给网格,并保存成“shp”文件,可用于ArcMap中进一步的可视化分析。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                    图9 “JSONFragmenter”参数设置

 

6、等时圈面/线的获取。一是“3DForcer”,以时间为“Elevation”将平面数据转换为三维数据;二是“Reprojector”,将地理坐标转换成平面坐标;三是“SurfaceModeller”,三维平面的构建,需要设置“Output Contour Interval”(等高线间隔,这里设定为“120”,即两分钟,这个建议定义为自定义参数)这个转化器将产生多种数据,这里用到的是“Contours”端输出的数据,当然也可以将“DEMRaster”输出端的数据保存下来用于可视化展示;四是“AreaBuilder”,“Contours”端输出的等值线构建面(等值面),并用“Tester”,保留需要的等值面;用“GeometryCoercer”将等时圈面转成线(“Geometry Type”选“fme_line”),并用“Deaggregator”,将等时圈的两条边打散,最后用 “Tester”,保留一条等时圈线,参数设置见图10。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                                          图10 “Tester”参数设置

四、可视化结果展示

等时圈的计算可能涉及到两种形式(纯属个人简单理解):一种是,按照行政区范围,即计算以某点为起点到达行政区范围内的所有位置,这种就会产生大量非闭合的线,这种情况采用栅格或者多边形的形式展示可能更合适。

前面有介绍通过接口计算的等时圈与交通状况有关,现在就以栅格展示不同时段驾车等时圈的变化(见图10)。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                            图10 不同时段等时圈的变化

第二种就是等时圈的定义的方式,下面展示以步行与骑行到达厦门市体育中心的计算结果,效果见图11至图14;

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                             图11 步行等时圈效果(未叠加等时线)

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                                 图12 步行等时圈效果(叠加等时线)

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                       图13 骑行等时圈效果(未叠加等时线)

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                             图14 骑步行等时圈效果(叠加等时线)

 

五、厦门山海健康步道可达性分析

厦门山海健康步道全长约23公里,起于邮轮码头,终于观音山梦幻沙滩,沿线串联筼筜湖、狐尾山、仙岳山、圆山、薛岭山、虎头山、金山、湖边水库、五缘湾、虎仔山、观音山等的厦门岛的“八山三水”。今年1月1日,开放后,游客爆棚;这种大人流量是否能长期维持,很大部分取决于其便利性,即可达性。

厦门山海健康步道,有数十个出入口,其中一级口有10个,二级口36个,三级口数十个,三级口绝大部分位于公园内部,因此本次以一二级口进行可达性分析。由于这涉及多个出入口,因此需要对前面的模板进行调整,现简单介绍模板的思路。

与单点计算差别有两点,一是在于图1的“SpatialFilter”这个转换器后边增加了3个转换器,见图15。由于用多个点进行缓冲及用“2DGridAccumulator”划分的网格进行难于构建与出入口相对应的终点的经纬度(未设定分组,分组可以解决这个问题,但会导致其他问题),这里用“FeatureMerger”将所有网格分配给每个出入口,并用“SpatialFilter”(采用分组)将与各个出入口划定的缓冲区内的网格与出入口的相关属性进行挂接。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                                                图15 多点计算模板变化

二是“JSONFragmenter”后增加“Sorter”对计算的结果按照网格的行列号记性排序,接着用“Sampler”保留时间最短的网格。

计算出等时圈后,调用高德POI矩形搜索接口获取等时圈内的居住及商务楼宇分布,最后进行可视化。步行(10-30分钟)及公交(20-60分钟)可达性及居住商务楼宇分布(数量)见图16、图17。

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                        图16 步行10-30分钟可以到达步道的范围及小区变化

基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例

                                                 图17 公共交通出行20-60分钟可以到达步道的范围及小区变化

(注:所有的底图均为高德地图)