您的位置:首页 > 其它

百度地图开发--实现打开地图自动定位到上次定位点然后在定位到自己的位置

2013-04-23 17:33 791 查看
要实现的功能要求为:

当第一次启动地图时,自动定位到我所在的位置,当第二次定位的时候,保存上次的定位点,这次直接先显示上次定位的地点,然后在定位到我现在所在的位置。

首先看下效果图:

第一次启动软件时的截图:




                        初始化时的定位信息

再次启动定位时的信息截图:




以后定位时显示的信息



主要思路:

这里主要运用到SharedPreferences,android的一种轻型的存储方式。当程序退出时保存上次定位点的信息,当再次启动时,取出定位信息然后进行定位,其次在进行正常的定位功能。

优点:

这样可以节省定位时间以及不必要的流量等。

代码解释:



@Override
    protected void onDestroy() {
        super.onDestroy();
        if(mapManager != null )
            mapManager.destroy();
        /*退出时保存这次的定位信息*/
        SharedPreferences settings=getSharedPreferences("GeoPoint_Info",0);
        settings.edit().putLong(mStringInitLatitude,mMyPlaceGeoPoint.getLatitudeE6()).commit();
        settings.edit().putLong(mStringInitLongtitude, mMyPlaceGeoPoint.getLongitudeE6()).commit();
        mapManager=null;
    }








@Override
        public void onCreate(Bundle savedInstanceState) {
        /*保存上次定位点以便于下次打开直接定位到该位置*/
        SharedPreferences settings=getSharedPreferences("GeoPoint_Info",MODE_PRIVATE);
        mInitLatitude=settings.getLong(mStringInitLatitude, mInitLatitude);
        Log.d(mStringInitLatitude, ""+mInitLatitude);
        mInitLongtitude=settings.getLong(mStringInitLongtitude, mInitLongtitude);
        Log.d(mStringInitLongtitude, ""+mInitLongtitude);
        
        Toast.makeText(timeLocation.this, "上次位置为:\n"+"经度:"+mInitLatitude+"\n"+"纬度:"+mInitLongtitude+"\n", Toast.LENGTH_LONG).show();
        //mMapView.getController().animateTo(new GeoPoint((int)mInitLatitude,(int)mInitLongtitude));
        mMapView.getController().setCenter(new GeoPoint((int)mInitLatitude,(int)mInitLongtitude));
        }




哈哈 ,就这样,简单方便的实现了改变默认定位初始点的位置。

原文地址:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐