SuperMap iClient3D for WebGL查询地图栅格值


前言

栅(shān)格数据就是将空间分割成有规律的网格,每一个网格称为一个单元,并在各单元上赋予相应的属性值来表示实体的一种数据形式。每一个单元(像素)的位置由它的行列号定义,所表示的实体位置隐含在栅格行列位置中,数据组织中的每个数据表示地物或现象的非几何属性或指向其属性的指针。一个优秀的压缩数据编码方案是:在最大限度减少计算机运算时间的基点上进行最大幅度的压缩。那么如何在SuperMap iClient3D for WebGL查询到地图的栅格值呢?下面让我们来看一下具体步骤。


一、生成栅格瓦片

1、在SuperMap iDesktopX11i中将栅格数据集添加到地图中

在这里插入图片描述

2、地图生成栅格瓦片

在这里插入图片描述

二、使用iServer发布服务

1.发布REST地图服务

在这里插入图片描述

2.将栅格数据集发布为数据服务

在这里插入图片描述

三、SuperMap iClient3D for WebGL查询地图栅格值

1、加载地图服务

//添加SuperMap iServer发布的影像服务
    var layer = viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
   
        url : 'http://localhost:8090/iserver/services/map-ugcv5-DEMdemZhaGeWaPian/rest/maps/DEM%40dem%E6%A0%85%E6%A0%BC%E7%93%A6%E7%89%87'
    }));
    
    viewer.flyTo(layer)

2、注册左键点击事件

var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);

        //设置鼠标左键单击回调事件
        handler.setInputAction(function (e) {
   
            //首先移除之前添加的点
            viewer.entities.removeAll();
            //获取点击位置笛卡尔坐标
            var position = scene.pickPosition(e.position);

            //将笛卡尔坐标转化为经纬度坐标
            var cartographic = Cesium.Cartographic.fromCartesian(position);
            var longitude = Cesium.Math.toDegrees(cartographic.longitude);
            var latitude = Cesium.Math.toDegrees(cartographic.latitude);
            var height = cartographic.height;

        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);

3、查询栅格值

$.ajax({
   
                type: "get",
                url: "http://localhost:8090/iserver/services/data-shange/rest/data/datasources/shange/datasets/DEM/gridValue.rjson?x="+longitude+"&y="+latitude,
                success: function (result) {
   
                    var resultObj = JSON.parse(result);
                    alert("栅格值为:"+resultObj.value);
                },
                error: function (msg) {
   
                    console.log(msg);
                },
            })

注意:当前接口返回的栅格值为整型

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-27 23:24:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-27 23:24:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-27 23:24:02       87 阅读
  4. Python语言-面向对象

    2023-12-27 23:24:02       96 阅读

热门阅读

  1. 【Python】Python 正则表达式

    2023-12-27 23:24:02       47 阅读
  2. cfa一级考生复习经验分享系列(十四)

    2023-12-27 23:24:02       49 阅读
  3. 2023.12.23力扣每日一题——移除石子使总数最小

    2023-12-27 23:24:02       63 阅读
  4. 3.pytorch cifar10

    2023-12-27 23:24:02       55 阅读
  5. DPDK系列之四十硬件加速和功能卸载

    2023-12-27 23:24:02       48 阅读
  6. 8个实用的Python内置函数

    2023-12-27 23:24:02       62 阅读
  7. 使用ubuntu问题

    2023-12-27 23:24:02       67 阅读
  8. Android保存WebView HTML源码

    2023-12-27 23:24:02       53 阅读
  9. HBase基础知识(六):HBase 对接 Hive

    2023-12-27 23:24:02       53 阅读
  10. pnpm包管理器

    2023-12-27 23:24:02       68 阅读