Android WorldWind的视角变化时的动画效果(二)

在上一篇文章《Android WorldWind的视角变化时的动画效果(一)》中,已经说过在安卓设备上使用worldwind做开发时,地球视角转换时的动画效果实现的方法。那篇文章写的起始点,和结束点经纬度坐标都是程序里面写的的,这样就不是很人性化,比较死板。在实际开发中,起始点可能是任意位置,那么如何实现从任意位置转到指定的技术点呢?下面就来记录下。
先上效果图
在这里插入图片描述
要实现这个效果就需要系统获取当前屏幕中心所在的经纬度和视角高。所以首先写一个获取当前位置的方法

/**
     * @date: 2020/4/10 13:23
     * @author: zhj
     * @description 获取当前视角的经纬度和视角高
     */
    public Position currentViewPosition(){
        Position position=new Position();
        double lat=worldWindow.getNavigator().getLatitude();
        double alt=worldWindow.getNavigator().getAltitude();
        double lon=worldWindow.getNavigator().getLongitude();
        position.set(lat,lon,alt);
        return position;
    }

现在获取到了当前位置信息latitude、longitude、altitude。
下面需要写一下对三维球的监听,并初始化。

/**
     * 对三维球进行初始化,设置navigatorListener
     */
    private void initWorldWindow() {
        NavigatorListener navigatorListener = new NavigatorListener() {
            @Override
            public void onNavigatorEvent(WorldWindow wwd, NavigatorEvent event) {
                event.getNavigator().getAsLookAt(wwd.getGlobe(), lookAt);
                event.getNavigator().getAsCamera(wwd.getGlobe(), camera);
                //setSecondViewPosition();
                double a=currentViewPosition().altitude;
            }
        };
        worldWindow.addNavigatorListener(navigatorListener);
    }

代码中a就是获取到的当前位置的高度值。经纬度值获取方法一样。
调用 initWorldWindow()方法,进行初始化。

private LookAt lookAt=new LookAt();
private Camera camera=new Camera();

lookAt和camera要实例化。
之后在需要的地方调用视角转换动画方法即可。

setAnimator(currentViewPosition(),shanghaiPosition,3000);

setAnimator(Position startP, Position endP, long duration)方法在上一章中有写;
currentViewPosition():当前视角的位置;
shanghaiPosition:上海的位置;
3000:动画时长。
到此,程序结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nanjumufeng

你的鼓励是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值