google earth开发(八)地球旋转和放大缩写、以及指定位置打开

Google Earth开发:地球旋转、缩放与指定位置打开
本文介绍了如何使用Google Earth API实现地球的旋转、放大缩小以及指定位置打开的功能。首先展示了如何将视图定位到中国,然后详细阐述了地球旋转的实现步骤,包括设置旋转速度和处理帧结束事件。最后提到了放大缩小的实现,通过调整视图的抽象视角参数完成。

(1)打开到中国位置

    function locationToChina()
     {
        var la = ge.createLookAt('');
        la.set(33,105.46, 0, ge.ALTITUDE_RELATIVE_TO_GROUND,
               0, 0, 4000000);   //最后一个参数是放大倍数,可根据页面大小调整.  第一、二位置是中国中心位置经纬度
        ge.getView().setAbstractView(la);
     }
(2)地球旋转

      a)定义全局参数

             var speed =  10;  // degrees per second
            var lastMillis = (new Date()).getTime();
      b)设置事件

            ge.getOptions().

OpenSceneGraph (OSG) 是一个强大的开源计算机图形库,主要用于实时渲染复杂的3D场景。它提供了一个灵活的架构,支持创建复杂的几何模型、纹理映射、动画以及光照效果等。osgEarth 是基于 OpenSceneGraph 的一个扩展库,专注于地理空间数据的可视化,特别是对地球表面(如地形、卫星图像)的支持。 要使用 osgEarth 创建旋转一个三维地球指定位置,首先确保已经安装了 osgEarth熟悉它的基本用法。以下是一个简单的步骤: 1. **设置环境**: - 引入所需的头文件: ```cpp #include <osg/Geode> #include <osgEarth/Terrain> #include <osgEarth/Position> ``` 2. **加载地球数据**: 使用 `Terrain` 类加载地球地形数据: ```cpp osg::ref_ptr<osgEarth::Terrain> terrain = osgEarth::Terrain::create("path_to_terrain_file.osgt"); ``` 将 "path_to_terrain_file.osgt" 替换为实际的地形文件路径。 3. **创建地球模型**: 创建一个 Geode 对象来包含地球模型: ```cpp osg::Geode* geode = new osg::Geode(); geode->addDrawable(terrain.get()); ``` 4. **设置旋转**: 使用 `osg::Position` 类来控制地球位置旋转。这里我们将创建一个旋转矩阵: ```cpp osg::Matrixd rotation; double x, y, z; // 输入你想要旋转到的经纬度坐标 osgEarth::convertLonLatToXYZ(x, y, z, &rotation); ``` 将 `x`, `y`, `z` 设置为你希望地球旋转到的目标经度、纬度高度。 5. **应用旋转**: 将旋转矩阵应用到地球模型上: ```cpp geode->setTransform(rotation); ``` 6. **添加到场景**: 将地球模型添加到 `osg::Group` 或其他合适的容器中,然后将其添加到你的渲染场景中: ```cpp osg::ref_ptr<osg::Group> root = new osg::Group(); root->addChild(geode); // 添加到你的主场景中 scene->addChild(root); ``` 7. **运行程序**: 最后,在应用程序中显示更新场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值