cesium的datasource(Cesium快速上手9-Camera和Scene中的其他函数使用)
本文目录
- Cesium快速上手9-Camera和Scene中的其他函数使用
- cesium测量距离,测量地形上两点的距离(工具篇)
- ionic3结合cesium在ios中的问题解决
- cesium获取点击点的经纬度
- cesium如何改变地图gamma某一块区域的透明度
Cesium快速上手9-Camera和Scene中的其他函数使用
示例***隐藏网址******隐藏网址*** destination 目标点, 可以是一个点,也可是是一个区域 orientation 相机的目标点角度,默认北向 duration: flyOverLongitude: 中途经过角度 camera.lookAtTransform 相当于 绕着参考坐标系transform的中心旋转; //若没有自定义参考坐标系,默认的时单位矩阵,中心点在地球的正中心。 效果是 相机不动,地球在动;实际上还是改变的相机的Transform,保持camera.position不变 ***隐藏网址*** 调试用的函数 debugShowFramesPerSecond debugShowDepthFrustum debugShowGlobeDepth cartesianToCanvasCoordinates(position, result) 三维场景坐标 转换到屏幕坐标 clampToHeight clampToHeightMostDetailed 获取最精细的高度,精度更准确,操作时间更长;获取完数据再求交; pickPosition 在屏幕看到的资源里面求交,不需要再次请求数据; drillPick 射线求交时具有穿透力, pick 射线求交时没有穿透力,
cesium测量距离,测量地形上两点的距离(工具篇)
有时候我们的项目中需要开发一个测量距离工具。在三维世界中测量的距离包括1.直线距离。2.垂直距离(即两个点的高程做差)。3.水平距离(即两个点在同一高度上的距离)4.地形上的贴地距离。5.测地线(椭球体上的距离)。我们分别来介绍下面这几种情况怎样计算距离。 1.直线距离 原理:直线距离 = 计算两个点向量做差求模长 输出2.垂直距离 原理:垂直距离=目标点高程-起始点高程 如果未知起始点和目标点高程的情况下,先计算出他们的高程,然后做差 输出3.水平距离 原理:水平距离=(目标点向量 - 和目标点同 一高度的起点向量)求模长 提升或降低起点的高程使和目标点是高程相等,然后使用1计算直线距离的方法计算就可以了 4.地形上的距离 原理:先求出两个点的直线距离,然后等间距做插值,求出每一个插值点在地形上的世界坐标,然后对插值点之间求直线距离后累加得到两点的地表坐标。如果两点距离过长例如超过了5公里,可以适当降低一下插值的经度,如果直线距离超过100公里,建议采用求测地线的方法地表距离。因为距离越大插值点数量越多计算就越慢。 输出5.测地线(椭球体上的距离,因为地球是圆的,所以求地球上两个点的距离相当于求椭球体上的两点曲线距离) 参照我的另一篇博客 cesium 求地表两点的距离(基础篇) 最后祝大家工作愉快,gis圈子的朋友可以帮忙关注下我博客哈!蟹蟹啦
ionic3结合cesium在ios中的问题解决
***隐藏网址*** i got it to run by realising in debug that the DataSourceDisplay assignment to the global variable is not reached in the iOS platform ... Translating ;) : var scene = cesiumWidget.scene; var dataSourceDisplay = new DataSourceDisplay({ scene : scene, dataSourceCollection : dataSourceCollection }); this._dataSourceDisplay = dataSourceDisplay; //i’ve placed the last line manually since this the following code is never reached in iOS Code that should be reach but is not for some reason: //Assign all properties to this instance. No "this" assignments should //take place above this line. this._baseLayerPickerDropDown = baseLayerPickerDropDown; this._fullscreenSubscription = fullscreenSubscription; this._vrSubscription = vrSubscription; this._vrModeSubscription = vrModeSubscription; this._dataSourceChangedListeners = {}; this._automaticallyTrackDataSourceClocks = defaultValue(options.automaticallyTrackDataSourceClocks, true); this._container = container; this._bottomContainer = bottomContainer; this._element = viewerContainer; this._cesiumWidget = cesiumWidget; this._selectionIndicator = selectionIndicator; this._infoBox = infoBox; this._dataSourceCollection = dataSourceCollection; this._destroyDataSourceCollection = destroyDataSourceCollection; this._dataSourceDisplay = dataSourceDisplay;
cesium获取点击点的经纬度
首先,Cesium 中的坐标可分为两种情况:二维和三维,三维又有地形和模型之分; 1、二维坐标,获取椭球体表面的经纬度坐标: var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); handler.setInputAction(function(evt) { var cartesian=viewer.camera.pickEllipsoid(evt.position,viewer.scene.globe.ellipsoid); var cartographic=Cesium.Cartographic.fromCartesian(cartesian); var lng=Cesium.Math.toDegrees(cartographic.longitude);//经度值 var lat=Cesium.Math.toDegrees(cartographic.latitude);//纬度值 var mapPosition={x:lng,y:lat,z:cartographic.height};//cartographic.height的值始终为零。 }, Cesium.ScreenSpaceEventType.LEFT_CLICK); 2、三维坐标,获取地形表面的经纬度高程坐标: 方法一 var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); handler.setInputAction(function(evt) { var ray=viewer.camera.getPickRay(evt.position); var cartesian=viewer.scene.globe.pick(ray,viewer.scene); var cartographic=Cesium.Cartographic.fromCartesian(cartesian); var lng=Cesium.Math.toDegrees(cartographic.longitude);//经度值 var lat=Cesium.Math.toDegrees(cartographic.latitude);//纬度值 var mapPosition={x:lng,y:lat,z:cartographic.height};//cartographic.height的值为地形高度。 }, Cesium.ScreenSpaceEventType.LEFT_CLICK); 方法二 var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); handler.setInputAction(function(evt) { var ray=viewer.camera.getPickRay(evt.position); var cartesian=viewer.scene.globe.pick(ray,viewer.scene); var cartographic=Cesium.Cartographic.fromCartesian(cartesian); var lng=Cesium.Math.toDegrees(cartographic.longitude);//经度值 var lat=Cesium.Math.toDegrees(cartographic.latitude);//纬度值 //height结果与cartographic.height相差无几,注意:cartographic.height可以为0,也就是说,可以根据经纬度计算出高程。 var height=viewer.scene.globe.getHeight(cartographic); var mapPosition={x:lng,y:lat,z:height.height};//height的值为地形高度。 }, Cesium.ScreenSpaceEventType.LEFT_CLICK); 3、三维坐标,获取模型表面的经纬度高程坐标(此方法借鉴于官方示例): var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); handler.setInputAction(function(evt) { var scene = viewer.scene; if (scene.mode !== Cesium.SceneMode.MORPHING) { var pickedObject = scene.pick(evt.position); if (scene.pickPositionSupported && Cesium.defined(pickedObject) && pickedObject.node) { var cartesian = viewer.scene.pickPosition(evt.position); if (Cesium.defined(cartesian)) { var cartographic = Cesium.Cartographic.fromCartesian(cartesian); var lng = Cesium.Math.toDegrees(cartographic.longitude); var lat = Cesium.Math.toDegrees(cartographic.latitude); var height = cartographic.height;//模型高度 mapPosition={x:lng,y:lat,z:height} } } } }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
cesium如何改变地图gamma某一块区域的透明度
场景色调透明度设置。fxaa确实能够改善文本和图片的清晰度,API文档上fxaa属性的介绍:Whentrue,enablesFastApproximateAnti-aliasingevenwhenorderindependenttranslucencyisunsupported。即开启fxaa能够启用图片抗锯齿的功能,但是不知道为啥会导致图片模糊,关掉之后会清晰很多。直接用canvas绘制图片或者文本图形比直接调用Cesium接口绘制要清晰很多。
本文相关文章:
day函数是什么意思(函数DAY($A$3)*4-4 代表什么意思)
2024年9月8日 10:45
递归算法解决八皇后问题(用递归函数设计八皇后问题的回溯算法C++代码)
2024年9月8日 09:01
c语言lseek函数的用法(问一个关于lseek函数的效率问题)
2024年9月7日 14:45
python递归函数考试题(python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数)
2024年9月6日 03:40
c语言中函数abs 和 fabs有什么区别?C语言中fabs表示什么意思
2024年9月4日 08:10
matlablength函数用法(如何使用MATLAB作出如下函数ns关于x变化的函数,x的取值范围为0到10)
2024年9月1日 04:40
php截取字符串以特定的字符分割(PHP怎么用substr函数截取字符串中的某部分)
2024年9月1日 03:45
small函数相反的函数(excel中small函数有什么作用)
2024年9月1日 01:40
easyx安装教程(【C语言】如何在VC++6.0中使用TC2.0特有的函数呢)
2024年8月31日 06:40
更多文章:
jquery插件中心(我 怎么使用jquery.plugins.js插件)
2024年7月22日 17:25
active和hover(触屏手机的按下按钮 应该是:hover 还是 active)
2024年6月29日 20:35
toolbar padding(easyui toolbar用js生成可以换行显示)
2024年7月20日 17:37
tkinter漂亮gui界面模板(如何使用pyQT做pythonGUI界面)
2024年7月23日 13:41
仓库管理系统java课程设计(java仓库管理系统的打印功能是怎么实现的)
2024年7月20日 11:02
mvc视图中怎么上传图片并显示?mvc将图片转换为二进制保存到数据库的实例
2024年6月20日 15:20
for循环中的return(C#关于For循环break,goto,return的应用)
2024年3月24日 18:35
thinkphp url(thinkphp url怎么去掉index.php)
2024年8月19日 13:30