Cesium地图上如何添加点击事件

前提:需要在Cesium-地图的点上添加左键的点击事件,并要求在点点击时才可触发,点击其他地方时不需要触发
解决过程:

1.先有点(在Cesium-地图打点在这里不做多余赘述,请移步博主其他文章进行了解)
2.点在打点时会写进该航点信息,在点击点时已经携带,可通过该信息判断是否点击的是点
3.确定是点后,建立点击事件
解决结果:

onMounted(() => {
    handlePoint = new Cesium.ScreenSpaceEventHandler(window.cesium.viewer.scene.canvas);
    handlePoint.setInputAction(function (event) {
        let pick = window.cesium.viewer.scene.pick(event.position)
        if(!pick){
            return
        }
        //用以下条件判断只有点击到点上才会触发此动作
        if(pick&&pick.id&&pick.id.pointData){
    console.log('进行点击')
    //可以在这里去写点击后需要执行什么
        }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
})

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Cesium 是一个基于 Web 技术的开源三维地图引擎,可用于创建令人印象深刻的交互式地图应用程序。GeoJSON 则是一种基于 JavaScript 对象表示法(JSON)的地理数据交换格式。 要在 Cesium 中渲染 GeoJSON 并为其添加点击事件,需要进行以下步骤: 1. 加载 GeoJSON 数据 可以使用 Cesium 的 GeoJSONDataSource 对象加载 GeoJSON 数据,例如: ```javascript var dataSource = new Cesium.GeoJSONDataSource(); dataSource.load('path/to/yourfile.geojson', { stroke: Cesium.Color.HOTPINK, fill: Cesium.Color.PINK, strokeWidth: 3, markerSize: 10 }); viewer.dataSources.add(dataSource); ``` 这将加载 GeoJSON 数据并以热粉色和粉色渲染边界和填充。您可以用自己的样式替换这些属性。 2. 添加点击事件 要在 GeoJSON 上添加点击事件,可以使用 pick 函数遍历场景中的实体,并将鼠标交互绑定到一个特定的实现函数。例如: ```javascript var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); handler.setInputAction(function (click) { var pickedObject = viewer.scene.pick(click.position); if (Cesium.defined(pickedObject)) { console.log(pickedObject.id); // 打印选中的实体的 ID } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); ``` 此代码将捕获到场景中的左单击事件,并使用场景 pick 函数提取被选中的实体。您可以使用 pickedObject.id 访问实体的属性,如名称和坐标。 综上所述,要在 Cesium 中渲染 GeoJSON 并添加点击事件,需要加载 GeoJSON 数据源并使用 pick 函数添加交互。这些步骤可以自定义以满足您的需求,例如添加更多的样式或交互性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值