基于FME实现地铁路径规划

news2025/8/3 10:37:55

在建设智慧城市的背景下,智慧交通、智慧出行等建设在近几年日常生产、生活中占比逐渐加大。

路径规划是智慧交通、智慧出行建设过程当中较重要的专题分类。不管是百度、高德等公共服务平台,亦或是地方政府部门都在大力推动导航发展。路径规划作为数据导航的一部分,主要是让目标对象在规定范围区域内找到一条从起点到终点的无碰撞安全路径。

FME作为一款空间数据分析、转换、处理系统,其核心价值就是支持各类数据交互处理。“路径规划”则是通过数据本身的存储情况,分析出数据最优解。以此,用FME来进行“路径规划”可不就是“与君初相识,犹如故人归”。

以下为大家介绍在FME中如何高效、快捷的搭建模型,实现地铁路径规划。

一、地铁路径规划目的

通过路径分析,找到从起点到终点的最短路径。

二、地铁路径规划成果

提供类百度、高德查询功能,输入起始点名称自动找到最短路径。

如下:

起点:成都高新区理想中心(办公楼)

终点:洪河城市花园(住宅小区)

规划路线:地铁1号线 —> 地铁7号线 —> 地铁2号线

规划站点:高新 —> 火车南站 —> 三瓦窑 —> 琉璃场 —> 四川师大 —> 狮子山 —> 大观 —> 成都东客站 —> 成渝立交 —> 惠王陵 —> 洪河 —> 成都行政学院 —> 大面铺

三、基于FME地铁数据规划流程

1 数据来源

1)地铁站点数据获取

通过“高德地铁”获取地铁数据站点信息

http://map.amap.com/service/subway?_1654480548833&srhdata=5101_drw_chengdu.json

提供数据以JSON格式返回,在FME中通过“HTTPCaller”+“JSONFragmenter”的方式即可从高德地铁接口中提取到地铁站点信息,解析出JSON格式中存储的坐标经纬度信息,并通过“VertexCreator”即可将数据处理为空间点。

2)起终点数据坐标获取

起终点仅提供名称信息。在进行地铁路径分析时,需要知道距离起终点最近的地铁站信息,才可进行地铁路径规划分析。因此,首先需对名称信息进行空间化处理。

起终点数据空间化直接调用高德API数据接口自动实现。

以高德API接口为例:

https://restapi.amap.com/v3/place/text?keywords=XX&page=1&offset=1&output=JSON&key=XX

keywords:起终点名称

key:高德平台许可码

通过“HTTPCaller”获取数据并解析处理得到其空间位置。

2分析起终点与站点的距离

通过邻近分析(“NeighborFinder”),分别获得距离起终点最近的地铁站站点信息。

3 Dijkstra算法获取最近路径

Dijkstra算法具体如何使用网上教程较多,此处不再详细介绍。

给大家提供一个博主链接,大家可以自行学习。

https://blog.csdn.net/lbperfect123/article/details/84281300

1)建立字典数据组

根据Dijkstra算法,首先计算各站点与邻近站点的距离,并构成字典数据组。

地铁站点数据分析后不难发现,有以下3种数据情况:

  1. 线路起终点
  2. 线路换乘站
  3. 除去终点、换乘站外其他站点

且针对于起终点数据仅与其下一站直接相连;换乘站需考虑同时到不同线路;除去终点、换乘站外其他站点与其上一站、下一站直接相连。

根据以上数据关系,通过“AttributeCreator”中“Enable Adjacent Feature Attributes”(邻近数据处理)参数,获取到数据的上一站、下一站、换乘站信息。

最终形成字典数据组。

2)运用Dijkstra算法进行路径分析

将以上步骤获取的起终点地铁站点信息,站点名称、距离字典数据组信息。通过运用Dijkstra算法自动计算出最优路径。

返回从起点到终点的站点信息

4 成果空间化

通过路径规划获取最近路径对应的站点信息,通过站点自动挂机原始空间数据,形成最优线路分布空间成果。

5 坐标转换

为下一步结合2000国家大地坐标系矢量或影像数据,展示规划线路走势情况,将高德平台GCJ-02坐标转换至2000国家大地坐标系。(坐标转换可使用MyFME实现)

6 成果展示

搭建地铁路径规划自动分析模板。仅需输入起终点名称,系统自动处理,获取地铁路径规划最短路线。

列举:

(1)理想中心—>成都IFS国际金融中心

(2)成都IFS国际金融中心—>成都大熊猫繁育研究基地

(3)西南财经大学(柳林校区)—>四川大学(望江校区)

四、思考

通过FME实现地铁路径规划分析,目前处理流程差强人意,以下两方面问题值得思考与优化:

(1)地铁线路为站点连通构成,与实际地铁线路走势情况存在差异,能否获取共享平台实际地铁线路数据作为规划成果输出。

(2)能否按照百度、高德等共享平台路径规划方式,同时考虑“公交+地铁”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现企业全链路协同,实现企业业绩增长

随着全球经济环境、贸易格局、产业结构的不断变化,持续冲击着各大企业供应链。在链路长、流程复杂的供应链体系中,由于“牛鞭效应”(供应链上的一种需求变异放大现象)的影响,需求单位、各级采购中心、供应商之间的信息…

【目标检测】英雄联盟能用YOLOv5实时目标检测了 支持onnx推理

目录 一、项目介绍 二、项目结构 三、准备数据 1.数据标注 2.数据转换格式 四、执行训练 1.anchors文件 2.标签文件 3.预训练模型 4.训练数据 5.修改配置 6.执行训练 五、执行预测 1.检测图片 2.检测视频 3.heatmap 五、转换onnx 1.导出onnx文件 2.检测图片…

Linux中如何检测系统是否被入侵

Linux中如何检测系统是否被入侵,检查系统的异常文件 查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以.为名的文件夹具有隐藏属性 > ls -al查找1天以内被访问过的文件 > find /opt -iname "*" -atime 1…

刘强东对京东零售动刀:提醒打工仔,要立新功不吃老本

雷递网 雷建平 11月24日在宣布下调京东高级管理人员的现金薪酬后,京东创始人刘强东又强势对京东零售管理人员进行动刀。此次调整中,时尚家居事业群负责人冯轶(Carol)、大商超全渠道事业群刘利振、平台业务中心负责人林琛成为此次调…

云原生大数据平台零信任网络安全实践技术稿

近年来星环科技围绕着数据安全做了大量的工作,形成了一个数据安全的产品体系。本文主要给大家介绍下星环数据云基于零信任安全理念在网络安全上的思考与实践。 首先对星环数据云产品的安全需求进行梳理和分类,大致可分为四类: ​ l 数据应用…

微软黑科技如何加速游戏开发,读这篇就够了

2022迈入尾声,游戏产业这场凛冽的寒风比想象中更为持久与刺骨。 一边是投入的缩减,一边是玩家攀升的要求。“既要又要还要”成为游戏制作人的高频句型。在紧预算与精制作的矛盾面前,游戏产业工业化的必要性再次被验证。如何把更多的精力投注…

通过PreparedStatement预防SQL注入

通过PreparedStatement预防SQL注入 简介:本文只讲PreparedStatement预防SQL注入的写法,大家学会就好。 推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Statement->ResultSet->通过Prepare…

【vim】系统剪切板、vim寄存器之间的复制粘贴操作命令?系统剪切板中的内容复制粘贴到命令行?vim文本中复制粘贴到命令行

一、系统剪切板和文本内容的复制粘贴 1.1 从系统剪切板复制粘贴到文本中 需要操作3次: 分别是英文双引号、一个加号或梅花号,最后是一个p 也即"p 或者直接使用组合键【Shift insert】 1.2 从文本复制粘贴到系统剪切板 也需要操作3次&#xff…

poi导入数据工具类,直接复制使用,有详细注释

poi导入工具类,直接复制使用,有详细的注释前言一、引入依赖二、封装的工具类以及注解类直接copy使用首先是工具类无需做操作然后是封装的两个注解类,也是直接复制使用测试工具类功能测试实体类Controller层调用执行结果如果ifNull 设置为true…

Mongodb认证入库并进行多版本缓存使用

作者:yangjunlin 使用过mongodb数据库的小伙伴们都知道,mongodb存储超图缓存是不需要密码的,只需要设置一个用户即可,但部分小伙伴们因为安全问题想用加密模式访问,但是不清楚如何创建,并且想用mongodb库进行多版本缓存…

GitHub 下载量过百万,阿里 P8 秘密分享的「亿级并发系统设计」

随着互联网的不断发展,CPU 硬件的核心数也在不断进步,并发编程越来越普及,但是并发编程并不像其他业务那样直接了当。在编写并发程序时,我们常常都会出现各种漏洞,这些问题往往都突然出现,然后又迅速消失&a…

centos7.9安装MySQL-学习

一、下载mysql5.7安装包 1.下载 二、安装 1、检查系统是否安装过mysql //检查系统中有无安装过mysql rpm -qa|grep mysql 2、查询所有mysql 对应的文件夹,全部删除 whereis mysql find / -name mysql 3、检查mysql 用户组是否存在 cat /etc/group | grep mysql …

Steam项目推进 (一) ——项目情况简述

一、前言 之前跟一个策划朋友一起做过一个小项目Demo,然后中止了大半年,现在想继续把这个项目推进下去。又怕自制力不够,所以建立一个栏目来记录这个项目的推进情况,记忆在项目中学习到的东西。 二、目前的项目情况 1、项目定位…

R-CNN,Fast R-CNN详解

R-CNN R-CNN可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,曾在2010年带领团队获得终身成就奖。 R-CNN流程 R-CNN流程可以分为4个步骤: 1.一张图像生成1k~2k个候选区域(使用Selective Search方…

【算法基础】P问题、NP问题、NP-Hard问题、NP-Complete问题

P问题、NP问题、NP-Hard问题、NP-Complete问题前提1. 时间复杂度:2. 约化(Reducibility)P问题NP问题NPHard问题NP-Complete问题其它:前提 1. 时间复杂度: 2. 约化(Reducibility) 如果能找到一个变化法则,对任意一个A程序的输入&…

【华为OD机试真题 python】 转骰子【2022 Q4 | 200分】

■ 题目描述 【转骰子】 骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置在平面上, 可以向左翻转(用L表示向左翻转1次), 可以向右翻转(用R表示向右翻转1次), 可以向前翻转(用F表示向前翻转1次), 可以…

力扣(LeetCode)71. 简化路径(C++)

模拟 对于路径 pathpathpath ,遇到 ′/′/′/′ 则操作,遇到其他字符则保存名字。操作有如下几种: 1.名字是 "."".""." 或 """""" 不操作,前者表示在当前目录,后者…

代码管理工具知多少?来看看Git怎么用吧

一. 代码管理工具简介 说到代码工具,许多工作了的小伙伴一定很有发言权。因为我们在实际开发环境中,就代码的复杂度和逻辑度,对于开发工程师来说,都是极具挑战性的。如果单靠个人来完成单个项目的整体开发,那无疑是难…

baostock均线数据怎么描出图形表示?

baostock主要是用量化交易者的一个开放数据的源头系统,其功能可以提供大量准确、完整的证券历史行情数据、上市公司财务数据等服务。利用python API获取证券数据信息,满足量化交易投资者、数量金融爱好者、计量经济从业者数据需求等,同样&…

重点,一文掌握ReentrantLock加解锁原理!|原创

本文详细讲解了 ReentrantLock 加锁和释放锁的原理,以及和 Synchronized 的对比。本文较长,建议收藏!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达简要总结 ReentrantLock实现原理:volati…