首页 > 其他分享 >使用Maps SDK添加本地slpk

使用Maps SDK添加本地slpk

时间:2024-04-18 14:56:56浏览次数:26  
标签:slpk Scene Maps sceneLayer myScene var new sceneView SDK

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;
}

标签:slpk,Scene,Maps,sceneLayer,myScene,var,new,sceneView,SDK
From: https://www.cnblogs.com/GISyunqi/p/18143491

相关文章

  • 解决IDA Pro Warning:mssdk64_win7: No such file or directory
       最初我以为出现这个问题的原因是我本机没有安装Windows7sdk导致的,然后尝试安装了windows7sdk。发现并没有什么用。接着机缘巧合之下发现这里的mssdk64_win7并不是指windowssdk,而是指idapro使用的til文件。所以idapro报这个错误只是因为安装目录下缺失了这些文件,所以......
  • 手把手带你玩转全志TinaSDK
    1.TinaSDK开发环境搭建1.1虚拟机使用VMWare创建一个Ubuntu虚拟机推荐使用18.041.2安装必要的软件包sudoapt-getinstall-ysedmakebinutilsbuild-essentialgccg++bashpatchgzipbzip2perltarcpiounziprsyncfilebcwgetpythoncvsgitmercurialrsyncs......
  • 4-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK-设备作为TCP客户端,实现上位机
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明这节设备作为TCP客户端,连接上位......
  • 3-WIFI&蓝牙(ESP32)转CAN或RS485总线&串口TTL模块-CSDK--设备作为TCP服务器,实现上位
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明这节设备作为TCP服务器,上位机T......
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.5版已发布
    关于MobileIMSDKMobileIMSDK是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、小程序、Uniapp、标准Java平台,服务端基于Netty编写。工程开源地址是:1)Gitee码云地址:https://gitee.com/ja......
  • 再次理解Android targetSdkVersion
    1.问题发生第一问题发生:两个APP访问同一个系统类android.net.IpConfiguration,均正常编译生成apk安装到同一台设备上(排除了外部因素)。一个app能正常访问IpConfiguration的属性IpAssignmentipAssignment,另一个却报错没有这个属性。出问题的那个app,我通过反射获取获取并打印了Ip......
  • 百度驾驶证C++离线SDK V1.1 C#接入
    百度驾驶证C++离线SDKV1.1C#接入目录说明 效果 项目代码下载 说明 自己根据SDK封装了动态库,然后C#调用。SDK包结构效果 项目代码usingNewtonsoft.Json;usingOpenCvSharp;usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnosti......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(3)
    1.问题描述:调用HarmonyOSAPI发送通知,能查到状态是送达终端设备,但是终端设备上没收到通知卡片。解决方案:通知应用大图标不能超过30kb,通知参数限制,参考如下:https://gitee.com/openharmony/docs/blob/a4772406c6d12809edc9bb407a9a2858b6b19e08/zh-cn/application-dev/reference/......
  • Mapster 高性能对象映射框架
    Mapster简介Mapster是一个使用简单,功能强大,性能极佳的对象映射框架为什么选择Mapster?性能&内存占用与AutoMapper相比,Mapster在速度和内存占用方面表现更加优秀,可以在只使用1/3内存的情况下获得4倍的性能提升。并且通过使用以下组件可以获得更高的性能:MethodMea......
  • WPS二次开发专题:WPS SDK实现文档打印功能
      作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397)在办公场景或者家教场景中经常碰到需要对文档进行打印的能力,今天给大家带来一篇如何通过WPSSDK调用WPS打印接口实现文档......