cesium拾取当前地图点击位置坐标,并在添加点到图上显示


Cesium实战系列文章总目录传送门

1.实现效果

在这里插入图片描述

2.实现方法

2.1实现思路

该方法只拾取不含高度的位置坐标,不能拾取包含地形、模型等的坐标。

主要思路是:
(1)监听屏幕鼠标左击事件
使用Cesium的ScreenSpaceEventHandler监听屏幕左击事件,API:传送门
在这里插入图片描述
(2)获取点击坐标并转换
使用Camera的pickEllipsoid方法将屏幕坐标转换为wgs84坐标,API:传送门
在这里插入图片描述
返回的结果是笛卡尔空间坐标,需要将其转换为经纬度坐标后,控制台打印输出。
(3)使用entity添加点
为点击位置创建圆点,可以直接使用pickEllipsoid方法获取的Cartesian3坐标创建点。

2.2具体代码

这里将代码封装了getClickPointAdd函数,函数及其调用代码如下:

// 调用
getClickPointAdd(this.viewer);

/**
 * @description: 获取当前鼠标点击位置坐标,并添加到图上显示
 * @param {*} _viewer
 * @return {*}
 */
function getClickPointAdd(_viewer) {
    // 注册屏幕点击事件
    let handler = new Cesium.ScreenSpaceEventHandler(_viewer.scene.canvas);
    handler.setInputAction(function(event) {
        // 转换为不包含地形的笛卡尔坐标
        let clickPosition = _viewer.scene.camera.pickEllipsoid(event.position);
        // 转经纬度(弧度)坐标
        let radiansPos = Cesium.Cartographic.fromCartesian(clickPosition);
        // 转角度
        console.log("经度:" + Cesium.Math.toDegrees(radiansPos.longitude) + ", 纬度:" + Cesium.Math.toDegrees(radiansPos.latitude));

        // 添加点
        _viewer.entities.add({
            position: clickPosition,
            point: {
                color: Cesium.Color.YELLOW,
                pixelSize: 30
            }
        })
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
要在Cesium地图上画,你可以使用`viewer.entities.add`方法,并在其中定义一个具有`position`和`point`属性的对象。`position`属性指定位置,可以使用`Cesium.Cartesian3.fromDegrees`方法将经纬度转换为笛卡尔坐标。`point`属性定义的样式,包括颜色和大小等。以下是一个示例代码: ```javascript viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(经度, 纬度), point: { color: Cesium.Color.YELLOW, pixelSize: 10 } }); ``` 请注意,你需要将`经度`和`纬度`替换为实际的经度和纬度值。这将在地图添加一个黄色的,大小为10像素。你可以根据需要调整颜色和大小等属性。 #### 引用[.reference_title] - *1* *3* [Cesium三维地球上添加、线、面、文字、图标(图片)、模型等标绘](https://blog.csdn.net/qq_17627195/article/details/109237689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [cesium拾取当前地图点击位置坐标,并在添加点到图上显示](https://blog.csdn.net/weixin_45782925/article/details/123364366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右弦GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值