当前位置: 首页 > article >正文

【二】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务

提示:如果是天地图底图参考这篇文章

【一】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务_arcgis js api 调用三维地图服务-CSDN博客

需求:

前端开发实现底图(wkid:3857,web墨卡托),高程服务(wkid:3857,web墨卡托)和不同坐标系的三维服务(wkid:4490,cgcs2000)套合 

二三维地图服务现状:

栅格切片服务:3857

影像切片服务:3857

高程服务:3857

三维服务:4490

思路:

  • 原有栅格切片服务,可以发布一个空的3857的影像切片服务,然后复用切片;
  • 影像切片服务都在新环境下采用imagetilelayer的方式,可以直接支持3857的栅格切片服务和影像切片服务与4490的三维服务套合,在global和local场景下都能加载,
  • 高程服务由于是dem数据发布的,需要重新将dem转成4490坐标系重切。

最终效果:

实现代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>IntegratedMeshLayer - 4.27</title>

    <link
      rel="stylesheet"
      href="https://js.arcgis.com/4.26/esri/themes/light/main.css"
    />
    <script src="https://js.arcgis.com/4.26/"></script>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <script>
      require([
        "esri/Map",
        "esri/views/SceneView",
        "esri/layers/IntegratedMeshLayer",
        "esri/layers/ImageryTileLayer",
        "esri/Basemap",
        "esri/Ground",
        "esri/layers/ElevationLayer",
        "esri/geometry/SpatialReference",
      ], function (
        Map,
        SceneView,
        IntegratedMeshLayer,
        ImageryTileLayer,
        Basemap,
        Ground,
        ElevationLayer,      
        SpatialReference
      ) {

        const spatialReference = new SpatialReference({
        wkid: 4490
      });
        //定义业务图层,例如:倾斜模型服务
        var layer = new IntegratedMeshLayer({
          url: "https://ncportal.geoscene.cn/server/rest/services/Hosted/nanning4490/SceneServer",
        });

        const tilelayer = new ImageryTileLayer({
          url: "https://ncportal.geoscene.cn/server/rest/services/nanning3857image/ImageServer",
        });
        //定义高程表面
        var customElevation = new ElevationLayer({
          url: "https://ncportal.geoscene.cn/server/rest/services/nanningelevation4490/ImageServer",
        });

        var customeGround = new Ground({
          layers: [customElevation],
        });
        //定义底图
        let basemap = new Basemap({
          baseLayers: tilelayer,
        });

        var map = new Map({
          layers: [layer], //业务图层
          basemap: basemap, //底图
          ground: customeGround, //高程表面
        });

        var view = new SceneView({
          container: "viewDiv",
          map: map,
          qualityProfile: "high",
          spatialReference:spatialReference
        });
     
        view.when(function () {
          view.qualitySettings.memoryLimit = 4096; //20190722 修改内存大小。
          view.goTo(tilelayer.fullExtent);
        });
      });
    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>


http://www.kler.cn/a/461034.html

相关文章:

  • 安装PyQt5-tools卡在Preparing metadata (pyproject.toml)解决办法
  • 检索增强生成
  • MinGW 和 MinGW-w64 的介绍与配置
  • 二、AI知识(神经网络)
  • df.replace({‘b‘: r‘\s*(\.)\s*‘}, {‘b‘: r‘\1ty‘}, regex=True)
  • 神经网络入门实战:(二十三)使用本地数据集进行训练和验证
  • 工作中常用Vim的命令
  • MiFlash 线刷工具下载合集
  • 查看 GitHub 仓库的创建时间
  • Excel for Finance 06 `STOCKHISTORY` 函数
  • Vue.js前端框架教程15:Vue父子组件之间的通信ref、emits
  • HarmonyOS NEXT应用开发之工具安装
  • 初次使用Oracle存储过程,定时任务--记录
  • 产品经理2025年展望
  • 创新引领未来,科技照亮梦想
  • Spring Boot缓存
  • 【MySQL】第一弹----库的操作及数据类型
  • 网络安全问题解答
  • 尚硅谷Vue3入门到实战 —— 02 编写 App 组件
  • axios拦截器底层实现原理
  • 基于SpringBoot+Vue的旅游推荐系统
  • [pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)
  • Doris安装部署
  • 实现单例模式的五种方式
  • jQuery学习笔记1
  • 无人机任务载荷系统之电子对抗技术!