本次依旧使用百度地图开放平台中的路径规划API,本次使用的是轻量级路线规划
中的步行路线规划
。
总体思路如下:
- 使用生成的起点、终点坐标值构建请求url;
- 将路径上的所有点提取出来;
- 将点连接成线。
1.创建起点、终点:
1.1 添加Creator转换器、AttributeManagerr转换器、VertexCreator转换器、FeatureMerger转换器
使用Creator转换器、AttributeManagerr转换器、VertexCreator转换器这三个转换器生成起点(本文以上海城隍庙附近为起点)、终点(本文以上海和平饭店为终点),并将其转成点要素,然后使用FeatureMerger转换器将起点、终点合并成一个要素。具体步骤可以参看基于路径规划API使用FME计算等时圈这篇文章。
2.构建访问url,解析结果:
2.1 添加HTTPCaller转换器
根据文档填写相关参数。
2.2 添加JSONFragmenter转换器
填写解析表达式并记得暴露所需属性。
2.3 添加AttributeManager转换器
进行属性整理。
此时通过添加Inspector
查看结果,发现已得到所需属性path
,不过path中是由若干个坐标值连接而成(其中,每个坐标对之间使用;
分隔,每个坐标对的经纬度使用,
分隔),因此后续需要将其中的每个坐标值提取出来。
3.将path中的点提取出来:
3.1 添加AttributeSplitter转换器
首先使用;
将坐标对分割开。
添加Inspector
查看结果,发现分割开的坐标对生成了一个list,但是没有添加到要素属性中。
3.2 添加ListExploder转换器
使用ListExploder转换器将上述生成的list炸开。、
添加Inspector
查看结果,发现分割开的坐标对已经添加到要素属性中。
3.3 添加ListExploder转换器
首先使用,
将坐标对的经纬度分割开。
需注意的是,此时需要手动暴露元素,因为一个list中只有经度、纬度两个元素,所以填写0,1
即可。
添加Inspector
查看结果,发现每个坐标值都提取出来了。
3.4 添加VertexCreator转换器
使用VertexCreator转换器按照经纬度坐标生成点。
3.将点连成线:
3.1 添加LineBuilder转换器
3.2 添加AttributeManager转换器
进行属性整理以便输出。
4.添加写模块:
添加shapefile写模块,将要素输出为shapefile文件。
添加Inspector
查看结果,看到路径已经提取出来了。