【技术贴】ArcGIS Runtime for Xamarin 洪荒之力-查找路径
来源:互联网 发布:可以拍电影的软件 编辑:程序博客网 时间:2024/06/10 18:30
我们要去一个陌生的地方经常会在地图上查找路线,现在一般的地图软件都有查找路径功能。输入出发地,目的地,轻轻一搜,一条路径就给显示出来了,非常方便我们的出行。那么这个功能是这么做出来的呢,今天我们就介绍ArcGIS Runtime 是怎么做到的。
本文采用的是ArcGIS Runtime for Xamarin 版本实现的,其他的版本均可以实现。
ArcGIS Runtime 能做到什么
计算点对点和多点路线
优化结果找到最短的或最快的路线
重新排序来找到最好的路径
设置避免限制区域和障碍区
指定站点的通过时间段(只在某一个时间段可以通过该点)
1基础知识
ArcGIS Runtime 实现路径分析的主要的类是route task
一个route task是一个网络分析的任务。通过执行这个任务可以在交通网络上得到俩个或者俩个位置的通达的解决路线。
交通网络可以是道路、桥梁、隧道、自行车道、铁轨和网络以及这个网络中的其他元素,道路的十字路口表示网络可以连接,障碍点表示网络不可以通过,通过分析网络的连通性来找到目标路线。
2详细步骤
有了以上的简单了解,我们就开始step by step 实现这个功能,总共分为六步
选择网络分析数据源
创建route对象
指定route任务参数
指定开始位置,结束位置和障碍
执行route任务
可视化显示路径
ArcGIS Runtime 的网络数据可以是在线的服务,也可以是离线的本地数据,但不管你使用的在线还是离线的实现的整个过程的是一样的。在线服务可以选择Esri公司的发布的ArcGIS Online,你也可以自己制作发布网络分析服务,具体发布流程请访问官方教程
http://server.arcgis.com/zh-cn/server/latest/get-started/windows/tutorial-publishing-a-network-analysis-service.htm
2创建route对象
route task 是一个重要的对象,通过设置 该对象的 空间参考,起始点位置,障碍点位置,就可以获得到要分析的满意路径。本例中使用的是在线服务
3指定route任务参数
route task 有许多个参数,通过这些参数可以允许你自定义路径,比如你设置站点位置,障碍点位置。route task 也有多种执行路径模式,不同的模式也会产生不同的结果。其中 spatial reference属性必须和地图的一致。
当设置完以上的参数以后,就可以得到结果了,只需要一行代码
得到了查找的路径我们当然希望将路径显示在地图上了,为此我们要做一下可视化展示的工作,用一个红色的线的来呈现路径。
最后的成果
怎么样 是不是很酷,简简单单的六步就实现一个路径查找功能的,赶快来试试吧。
下图是一个iOS版本的路径执行结果
除了二维平面导航路径以外,还可以做三维的路径,这样对于我们有时候在一栋大楼里面找一个商店或者在一个楼里面开会寻找小伙伴非常管用,下图中直接从一楼导航到三楼。
总结
duersi
一路狂贴代码,ArcGIS Runtime 洪荒之力只用冰山一角,路径分析是一个非常实用的功能,希望通过这篇文章对大家的工作有所帮助,另外提一句 ArcGIS Runtime for Xamarin这个版本可以使用C#开发ArcGIS 跨平台的移动产品, 比如Android 和iOS。
后续关于ArcGIS Runtime 的文章会有
ArcGIS Runtime 设备定位,
ArcGIS Runtime 3D,
ArcGIS Runtime 在线离线,
ArcGIS Runtime 符号化渲染,
ArcGIS Runtime 结合VR初探,等多篇文章,请大家持续关注
- 【技术贴】ArcGIS Runtime for Xamarin 洪荒之力-查找路径
- 【技术贴】聊聊ArcGIS Runtime for Xamarin
- 【技术贴】ArcGIS Runtime for Xamarin入门教程-调用矢量切片
- ArcGIS Runtime for Xamarin介绍
- 【技术贴】ArcGIS Runtime for Xamarin 使用SPK构建逼真的三维场景
- ArcGIS Runtime for Xamarin入门教程-调用矢量切片
- 洪荒之力
- ArcGIS for Android 查找最短路径
- arcgis for android 短路径分析 查找最短路径
- ArcGIS Runtime for .NET
- 【技术直通车】ArcGIS Runtime SDK for iOS 升级介绍
- 【10.0.1】ArcGIS Runtime for Android之搭建开发环境
- ArcGIS Runtime SDK for IOS 开发之启程篇
- ArcGIS Runtime SDK for iOS 开发之加载地图
- ArcGIS Runtime SDK for iOS之Maps和Layers
- ArcGIS Runtime SDK for iOS之符号和渲染
- ArcGIS Runtime SDK for iOS开发之创建离线地图
- 洪荒之力的英语翻译(mystical powers)
- leetcode/371. Sum of Two Integers
- log4j能输出控制台但不能输出到文件的问题
- Eclipse SVN冲突详细解决方案
- string 与char* 、char[]、const char*之间的转换
- 算法学习———KM算法
- 【技术贴】ArcGIS Runtime for Xamarin 洪荒之力-查找路径
- C语言基础学习学习前的准备-2
- 编译器预处理实现
- String中"=="和equal()的区别
- 百度编辑器 绑定指定的容器
- Stacking Notifications(层叠多 个Notification)
- Android学习笔记之BroadcastReceiver
- 进军Docker 1.12,将代理与Swarm完美整合
- NDK: multiple definition of 'typeinfo for XXX' "vtable for xxx" 错误