问答媒体

 找回密码
 立即注册
快捷导航
搜索
热搜: 活动 交友 discuz
查看: 84|回复: 1

vue+cesium 点击矢量图层获取geoserver信息

[复制链接]

1

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2023-1-1 14:38:44 | 显示全部楼层 |阅读模式
以前在工作中都是使用了openlayer,现在想试试看cesium这个框架,其中最主要的一个工作是geoserver上传了一个矢量文件,里面有很矢量图斑,当我在vue+cesium地图界面展示这个图斑文件的时候,我需要点击不同矢量图斑获取不同的图斑数据,用于展示界面。
逛了网上一大圈,发现资料还是比较少,因此记录一下这个代码怎么写、
其实也挺简单的,这点比openlayer好太多了,思路是:Cesium.ScreenSpaceEventType.LEFT_CLICK使用pickRay获取数据,然后对数据进行获取就行了
1.没有点击到矢量图版的时候


2.点击到矢量图斑后


废话不多说。上代码
    //监控点击事件
    var handler = new Cesium.ScreenSpaceEventHandler(this.viewer.canvas);
   
    handler.setInputAction(async  (event)=> {
      this.viewer.selectedEntity = undefined;
      var pickRay = this.viewer.camera.getPickRay(event.position);
      
      try {
        this.clickfeaturesPromise = await this.viewer.imageryLayers.pickImageryLayerFeatures(pickRay, this.viewer.scene);
        this.clickfeaturesPromise = this.clickfeaturesPromise[0]['properties']
      } catch (error) {
        this.clickfeaturesPromise = '没有选择到图层'
      }
      console.log("featuresPromise:", this.clickfeaturesPromise)

}, Cesium.ScreenSpaceEventType.LEFT_CLICK);如果对你有帮助,帮忙点个赞,谢谢了
回复

使用道具 举报

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2025-5-11 13:41:25 | 显示全部楼层
众里寻他千百度,蓦然回首在这里!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 问答媒体

GMT+8, 2025-7-13 22:21 , Processed in 0.082184 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表