ArcGIS RunTime Sdk +WPF 基础地图显示
1 简单的地图展示
ArcGISRunTime 的平面地图展示主要依赖MapView这个控件,MapView是地图的容器,Map主要是图层的集合
(注:三维场景的显示主要依赖SceneView这个控件)
- <esri:MapView x:Name="MyMapView" WrapAround="True">
- <esri:Map >
- <esri:ArcGISTiledMapServiceLayer
- ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
- </esri:Map>
- </esri:MapView>
简单的地图显示就已经OK了,但是此时我想展示某个地方的地图,也就是说我不想一上来就展示世界地图,好,接着看下面
2 设置初始视角及范围
(1)分别设置最小点的最大点的坐标即可
- <esri:MapView x:Name="MyMapView" WrapAround="True">
- <esri:Map >
- <esri:Map.InitialViewpoint>
- <esri:ViewpointExtent XMin="104.082686" YMin="30.695853" XMax="104.382686" YMax="30.718530" SpatialReferenceID="4326" />
- </esri:Map.InitialViewpoint>
- <esri:ArcGISTiledMapServiceLayer
- ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
- </esri:Map>
- </esri:MapView>
注:SpatialReferenceID="4326" 4326是WGS 84投影的代号
3我想要达到如图这种自定义控件跟着我的地理坐标实时互动统一应该怎么做呢
正确姿势:使用OverlayItemsControl ,然后利用MapView.ViewOverlayAnchor 指定UI控件(如Grid)在地图上的定位锚点(地理位置)
4经向环绕
平面地图都是从经度-180展开到180,如果你要同时浏览东西经180的数据就很不方便,因此在v1.8中新增加了经向环绕“Wrap Around”的设置,使得地图数据在东西向平移时无缝环绕。
- <esri:MapView x:Name="mapStreets" WrapAround="True">
- <esri:Map>
- <esri:ArcGISTiledMapServiceLayer
- ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
- </esri:Map>
- </esri:MapView>
但是由于设置了经向环绕,所以从屏幕获得的坐标要经过标准化normalize
Geometry Engine里提供了该方法normalizeCentralMeridian
- var normalizedPoint = GeometryEngine.NormalizeCentralMeridian(e.Location);
- var projectedCenter = GeometryEngine.Project(normalizedPoint, SpatialReferences.Wgs84) as MapPoint;
当然如果你考虑最大范围覆盖全球或者投影支持Wgs84以及Web Mercator 你可以考虑添加经向环绕
5 以上的地图都是加载网上的地图,能不能加载本地的数据呢?
答案当然是可以的,ArcGIS RunTime支持从本地读取Shapefile Geodatabase
那么最后能不能以服务的形式加载本地数据呢?这个也是可以的
不过官方会提示你仅供开发调试使用
- LocalMapService localMapService = new LocalMapService(@"\maps\xx.mpk");
- await localMapService.StartAsync();
- ArcGISDynamicMapServiceLayer arcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer()
- {
- ID = "arcGISDynamicMapServiceLayer",
- ServiceUri = localMapService.UrlMapService,
- };
- MyMapView.Map.Layers.Add(arcGISDynamicMapServiceLayer);
类比要素服务也可以在本地被创建这种以访问本地服务的方式访问本地数据与远程服务并没有太大差异
ArcGIS RunTime Sdk +WPF 基础地图显示的更多相关文章
- ArcGIS Runtime SDK for WPF已不更新,后续将被ArcGIS Runtime SDK for .NET取代
ArcGIS Runtime SDK 10.2.5 for WPF is now available! by mbranscomb and Rex Hansen on January 27, 2015 ...
- ArcGIS runtime sdk for wpf 授权
这两天由于runtime sdk for wpf的授权和runtime sdk 其他产品的授权的不一样导致自己混乱不堪. 总结下吧. sdk 简介 当前ArcGIS runtime sdk 包括一系列 ...
- ArcGIS Runtime SDK for WPF之SimpleRenderer无法添加、报错“图形符号无法序列化为 JSON”
ArcGIS Runtime SDK for WPF之SimpleRenderer无法添加.报错“图形符号无法序列化为 JSON” 在上一篇博文中如果在 esri:Map 里面是否设置了的UseAcc ...
- ArcGIS Runtime SDK for WPF 初始化
安装包 管理nuget包 Esri.ArcGISRuntime.WPF 也许还需要 Esri.ArcGISRuntime.Hydrography Esri.ArcGISRuntime.LocalSer ...
- ArcGIS Runtime SDK for WPF学习笔记(一)
本节主要讲解如何安装ArcGIS Runtime SDK,以及移除注释与水印. 附上ArcGIS Runtime SDK for .NET的官方操作手册网址:https://developers.ar ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的地图应用程序的开发包,包括移动设备的Android.iOS.Windows Phone,针对桌面的.Net.Java.OSX ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(9)、空间数据的容器-地图MapView
1.前言 在上一篇内容里介绍了 关于ArcGIS Android开发的未来(“Quartz”版Beta)相关内容,期间也提到了关于API接口的重构,开发思路的调整,根据2015UC资料也可以知道新版预 ...
- ArcGIS Runtime SDK for Android 授权(arcgis android 去除水印)
ArcGIS Runtime SDK for Android 授权 ESRI中国北京 要下载和安装 ArcGIS Runtime SDK for Android,您需要注册开发者账户,进而便拥有了访问 ...
- ArcGIS runtime for wpf 部署
简介 ArcGIS runtime for wpf 是一个轻量级的产品,部署方便,甚至可以做到直接部署在U盘中,做到即插即用. 部署一般需要遵循如下几个步骤: 1. 设定部署许可 虽然ArcGIS r ...
随机推荐
- Divisibility by 25 CodeForces - 988E(模拟)
遇见模拟题 有两种做法 例如这题: 1.直接去算次数(统计哪个数在第几位,然后去运算) 2.模拟操作 贴一个别人的代码...https://blog.csdn.net/weixin_39453270/ ...
- BZOJ 2745: [HEOI2012]Bridge
2745: [HEOI2012]Bridge Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 199 Solved: 90[Submit][Statu ...
- 【转】嵌入式Linux驱动面试题三道
题一: Linux设备中字符设备与块设备有什么主要的区别? 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性.字符设备驱动程序通常至少实现open,cl ...
- 【科技】扩展Lucas随想
扩展Lucas解决的还是一个很Simple的问题: 求:$C_{n}^{m} \; mod \; p$. 其中$n,m$都会比较大,而$p$不是很大,而且不一定是质数. 扩展Lucas可以说和Luca ...
- loj6436【PKUSC2018】神仙的游戏
$|S| \le 5 \times 10^5$ 题解 这题直接用通配符匹配的套路会错,因为重复部分的$?$可能同时被当做了$0$和$1$ 有长度为$i$的公共前缀后缀等价于有长度为$n-i$的循环节: ...
- laravel 嵌套事务
什么是嵌套事务? 一般情况下我们都是一个 begin, 一个 commit 或 rollBack, 但是有可能我们有种场景需要 begin 然后在事务里面再开一个事务, 这就是嵌套事务. MySQL ...
- PythonCodingRule简略
- ORM choice字段 如何在页面上显示值
核心:obj.get_字段名_display 1.定义module 数据结构: class msg(models.Model): choice = ( (1, '技术部'), (2, '行政'), ( ...
- nandflash,norflash,sdram,emmc,rom,ram等各种存储器识别
老是被nandflash,norflash,sdram,emmc,rom,ram搞混,所以在这里总结一下,也为了更好的分清他们之间的关系,以至于别人问的时候不至于说不清. 我们不谈这些名次的由来,只说 ...
- bzoj千题计划171:bzoj2456: mode
http://www.lydsy.com/JudgeOnline/problem.php?id=2456 任意删除序列中两个不同的数,众数仍然是众数 不停的删,剩下的最后的数一定是众数 具体实现: 记 ...