首页城市开放数据使用FME提取最短路径

使用FME提取最短路径

本次依旧使用百度地图开放平台中的路径规划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查看结果,看到路径已经提取出来了。

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments