SceneView m_sceneView;
public void LoadSceneLayerFromSLPK(SceneView sceneView, string slpkPath)
{
if (!File.Exists(slpkPath))
throw new Exception("文件不存在"); if (null == sceneView.Scene)
CreateScene(sceneView);
Uri treespk = new System.Uri(slpkPath);
var sceneLayer = new ArcGISSceneLayer();
// add the scene layer to the scene
sceneLayer.Source = treespk;
sceneLayer.Name = "三维";
sceneLayer.Loaded += SceneLayer_Loaded;
sceneLayer.SurfacePlacement = SurfacePlacement.Relative; sceneView.Scene.OperationalLayers.Add(sceneLayer);//添加三维图层
}
public async void CreateScene(SceneView sceneView)
{
m_sceneView = sceneView;
// Create new Scene
Scene myScene = new Scene();
// Set Scene's base map property
myScene.Basemap = Basemap.CreateImagery();
myScene.Basemap.BaseLayers[0].Name = "影像";
sceneView.Scene = myScene;
}
private void SceneLayer_Loaded(object sender, EventArgs e)
{
var arcGISSceneLayer = sender as ArcGISSceneLayer;
if (null == arcGISSceneLayer)
return;
var fullExtent = arcGISSceneLayer.FullExtent;
if (null == fullExtent)
return;
var center = fullExtent.GetCenter();
var camera = new Camera(center.Y, center.X, 500, 60, 0, 71.17);
m_sceneView.SetViewpointCameraAsync(camera);
}

这时候,图层已经能加载进来,但是是飘在空中的。这是因为没有设置对应的高程表面,导致高程的偏移。需要添加一个高程表面,我使用的是dem作为高程表面,也可以使用高程服务。

public async void CreateScene(SceneView sceneView)
{
m_sceneView = sceneView;
// Create new Scene
Scene myScene = new Scene();
// Set Scene's base map property
myScene.Basemap = Basemap.CreateImagery();
myScene.Basemap.BaseLayers[0].Name = "影像";
sceneView.Scene = myScene; var el = new RasterElevationSource(new string[] { @"DEM.tif" });
el.Name = "elevation";
await el.LoadAsync();
var su = new Surface();
su.ElevationSources.Add(el);
sceneView.Scene.BaseSurface = su;
}

使用Maps SDK添加本地slpk的更多相关文章

  1. [原]逆向iOS SDK -- “添加本地通知”的流程分析

    观点: 代码面前没有秘密 添加通知的 Demo 代码 - (void)scheduleOneLocalNotification { [[UIApplication sharedApplication] ...

  2. maven添加本地jar包

    今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...

  3. Sql server之路 (三)添加本地数据库SDF文件

    12月25日 今天搞了半天 添加本地数据库Sdf文件到项目里.总是出现问题. 安装环境 Vs2008 没有安装的环境 1.Vs2008 sp1 2. 适用于 Windows 桌面的 Microsoft ...

  4. AD组策略添加本地账号、设置允许ping回显

    AD组策略添加本地账号 1. 管理工具--组策略管理--选择相应GPO(编辑)----首选项--控制面板设置--本地用户和组--右键添加账号 2.域成员计算机刷新组策略(gpupdate/force) ...

  5. maven添加本地依赖包方法

    1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <g ...

  6. 在Android Studio添加本地aar包引用

    1.如何在Android Studio添加本地aar包引用 https://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html 2.完成上述 ...

  7. Ubuntu Linux系统三种方法添加本地软件库

    闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...

  8. maven添加本地jar到本地库中

    maven添加本地jar到本地库中(用于远端地址下载不了的情况) 在dos命令行执行以下命令将会吧ojdbc14-10.2.0.4.0.jar添加到本地库中(ps:必须已经安装了,maven,并配置了 ...

  9. intelliJ IDEA 怎么添加本地的idea web项目

    概述:这篇文章主要讲述idea开发工具怎么添加本地的idea web项目. 一:首先介绍一下idea web项目的目录结构: 上图详细简单的说了一下idea web项目的文件情况. 二:说明一下部署本 ...

  10. Maven中如何将源码之外的文件打包及添加本地jar

    <build> <resources> <resource> <directory>src/main/resources</directory&g ...

随机推荐

  1. MyBatis——注解开发

    注解开发完成增删改   * (在完成简单功能时)使用注解开发会比配置文件开发更加方便 查询:@Select 添加:@Insert 修改:@Update 删除:@Delete               ...

  2. .net 调用 nsfwjs 进行视频鉴别

    1. npm 安装 nsfwjs npm install express --save npm install multer --save npm install jpeg-js --save npm ...

  3. 使用composer创建项目时报错:Composer could not find the config file?

    使用composer创建项目时报错:Composer could not find the config file:C:\Composer ....? 一般报这个错就是composer安装的时候配置了 ...

  4. excel江湖异闻录--自序

    本书原名<excel从高手到小白>,取这个名字是因为,当我只会几个有关excel的快捷键和简单函数时我放眼我所在的"井口",当真有种天下谁与争锋的感觉,的确就我周围的伙 ...

  5. USB type-c CC管脚如何做到正反接检测功能

    USB Type-C 连接器的 CC (Configuration Channel) 管脚用于实现插头方向检测和电源管理.具体来说,USB Type-C 连接器具有两个 CC 管脚:CC1 和 CC2 ...

  6. 2020年度国产数据库:openGauss

    根据墨天轮2020年一年的数据库流行度得分趋势变化,我们选出了流行热度增长显著的数据库为2020年度国产数据库.恭喜 华为开源关系型数据库 openGauss 荣获 "2020年度国产数据库 ...

  7. 2021CSP复赛游记,总结与回顾

    一曲起,一曲落:2021的CSP复赛也走过一个月了. 总而言之,成败只代表过去,过去不代表未来,收获满满,受益匪浅,足矣 今年,是我参加CSP的第四年,回忆当初踏入信息学的大门,跌倒过,受伤过,但从没 ...

  8. 云原生周刊:Prometheus 3.0 Beta 发布|2024.09.16

    开源项目推荐 Kuma Kuma 是一个现代化的基于 Envoy 的服务网格,能够在每个云平台上运行,支持单区域或多区域部署,兼容 Kubernetes 和虚拟机.凭借其广泛的通用工作负载支持,以及对 ...

  9. 什么是APP原生开发

    什么是APP原生开发?原生App实际上是一种基于智能手机本地操作系统如Android.IOS并且使用原生程序编写运行的第三方移动应用程序.开发原生App软件需要针对不同智能手机的操作系统来选择不同的A ...

  10. myBatis插入操作获取不到返回的自增id问题

    myBatis插入操作后想返回自增 id 有多种方式 其中一种使用率较高的就是: 在<insert></insert> 标签中添加 useGeneratedKeys 和 key ...