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

来源:互联网 发布:淘宝买可爱小东西的店 编辑:程序博客网 时间:2024/04/29 21:18

要实现的功能要求为:

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

首先看下效果图:

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

                                  

                        初始化时的定位信息

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

                                 

                                                          以后定位时显示的信息

 

主要思路:

     这里主要运用到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));        }
复制代码

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


原文地址:点击打开链接

原创粉丝点击