Cesium的坐标拾取详解
Cesium
的坐标拾取
屏幕坐标:鼠标点击位置距离
canvas
左上角的像素值var handler= new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); handler.setInputAction(function (movement) {// movement.position 为屏幕坐标console.log(movement.position); }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
地图/椭球体表面的坐标,
pickEllipsoid(windowPosition, ellipsoid, result) → Cartesian3
var canvas = viewer.scene.canvas; var center = new Cesium.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0); var ellipsoid = viewer.scene.globe.ellipsoid; var result = viewer.camera.pickEllipsoid(center, ellipsoid);
地标坐标:只能求交于地形,不包括模型、倾斜摄影表面,能获取加载地形后的坐标,
pick(ray, scene, result) → Cartesian3|undefined
// 从相机位置到windowPosition 世界坐标中的像素创建射线。 // 返回Cartesian3射线的位置和方向。 var ray = viewer.camera.getPickRay(windowCoordinates); // 查找射线与渲染的地球表面之间的交点。射线必须以世界坐标给出。 var intersection = globe.pick(ray, scene);
场景坐标:根据窗口坐标,从场景的深度缓冲区中拾取相应的位置,返回笛卡尔坐标,不仅可以求交地形,还可以求交除地形以外其他所有写深度的物体。
pickPosition(windowPosition, result) → Cartesian3
var viewer = new Cesium.Viewer('cesiumContainer'); var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); handler.setInputAction(function (movement) {var pickedObject = viewer.scene.pick(movement.endPosition);// 使用时,最好利用pickPositionSupported判断一下浏览器是否支持模型高度拾取 if (scene.pickPositionSupported && Cesium.defined(pickedObject)) {var cartesian = viewer.scene.pickPosition(movement.endPosition);console.log(cartesian);} }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
globe.pick
与scene.pickPosition
比较globe.pick
的结果相对稳定准确,不论地形深度检测开启与否,不论加载的是默认地形还是别的地形数据;scene.pickPosition
只有在开启地形深度检测,且不使用默认地形时是准确的。注意点:
globe.pick
只能求交地形;scene.pickPosition
不仅可以求交地形,还可以求交除地形以外其他所有写深度的物体。
所以使用时可以二者结合来使用。
Scene
中pick
讲解pick:scene.pick
可以通过此方法获取到pick对象,通过pick.id
即可拾取当前的entity
对象,也可以获取Cesium3DTileFeature
对象;drillPick:scene.drillPick(click.position)
是从当前鼠标点击位置获取entity
的集合,然后通过for循环可以获取当前坐标下的所有entity;
Cesium的坐标拾取详解相关推荐
- 坐标移动c语言,C语言 坐标移动详解及实例代码
搜索热词 题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. ...
- 基于 React hooks + Typescript + Cesium 实现坐标拾取功能组件
功能介绍 本例子基于 react hooks + ts + Cesium 实现坐标拾取组件:实现 WGS 84 经纬度.大地2000 经纬度.大地2000 投影 坐标的获取并展示,封装对应的 Pick ...
- mc正版服务器 创世神插件,我的世界WorldEdit创世神插件教程坐标范围详解
小编为大家带来了<我的世界>WorldEdit创世神插件教程坐标范围详解,在不使用任何标示的情况下,WorldEdit会将当前的选区看做一个三维直角坐标系,坐标系原点为选区中心. IV.坐 ...
- c语言建立二维坐标,C语言 坐标移动详解及实例代码
题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: 合 ...
- Echarts-极坐标(参数详解)
mytextStyle={color:"#333", //文字颜色fontStyle:"normal", //italic斜体 oblique倾斜fontWei ...
- 我的世界java版如何看坐标_我的世界中怎么查看坐标,坐标系统详解
本篇教程将通过图文的形式一步步教你在我的世界中查看理解坐标系统(XYZ). 坐标系统解释 我的世界地图有XYZ3个坐标,通过XYZ来显示你所处地图的区域. 下面是每个坐标的详解: X - 显示你在地图 ...
- android鼠标滚轮事件坐标,Android触摸滑动全解(四)——MotionEvent详解
Android触摸滑动全解(四)--MotionEvent详解 在分析View和ViewGroup的触摸事件时,我们已经接触到了MotionEvent类,它是用来存储我们当前手指移动的状态的,比如按下 ...
- Unity ShaderLab特效教程 适用于贴图、sprite和ugui的2d着色器实例 代码+详解注释 【将贴图转为马赛克效果】
如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 一个将贴图转为马赛克效果的shader: 万恶的马赛克其实也是一种艺术风格,如果你在开发2d游戏不 ...
- Unity ShaderLab特效教程 适用于贴图、sprite和ugui的2d着色器实例 代码+详解注释 【锐化效果】
如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 锐化效果 笑狗图 代码 Shader "Custom/BlurBox" {Pr ...
最新文章
- ArcPy学习入门(三):ArcPy 函数列表
- D3D9学习笔记(四) 绘制
- 单片机到底是不是嵌入式?
- jq 如何让点击其他地方隐藏_详解jQuery除指定区域外点击任何地方隐藏DIV功能
- c语言编译器怎样退出全屏,BOOX 应用软件怎样退出全屏模式?
- centos7 yum安装ifconfig
- WinCE 6.0中断驱动程序分析
- hive集群安装,连接mysql
- 生成树的冗余与负载分担技术
- java file的用法_Java 关于File使用
- 提取Python stringlib中的BMHBNFS字符串查找算法
- 解决Rufus不会自动下载ldlinux.sys和ldlinux.bss文件问题
- 前端福利 - h5源码一键下载
- 学习linux方向,学习linux方向
- 关键字CORRESPONDING的用法
- 第一个RSF自动化测试用例-启动打开百度页面,搜索【月饼】关键字,关闭浏览器...
- c语言发票的编码,增值税普通发票(折叠票)的发票代码有几位?
- Deep Freeze冰点还原精灵破解|对Persi0.sys文件的思考
- 使用ISE iMPACT实现一键bit转mcs,bit文件下载,mcs文件下载
- Cindy User Guide
热门文章
- 用NetCDF创建和读取NC文件
- C - AtoI: Convert a string of digits into its numeric equivalent
- 模拟量采集模块4-20ma0-10v0-5v转rs485modbus 2/4/8/16路电流电压输出输入
- 工具 | Windows 功能猎手 (WFH)
- PTA 7-172 元宵花灯
- C语言实验题目[01]
- 易订货专属App文档
- html如何自动适应分辨率,css如何适应不同分辨率?
- 用jmeter压测tcp
- 最短路(三) A star Heuristics