Android Google Map实例 - 添加GPS位置标注(Android mapview)

来源:互联网 发布:vim python 环境 编辑:程序博客网 时间:2024/04/29 12:07

 有时候你需要将自己的GPS位置也标注到自定义图层上,以方便与先前添加的自定义图层的位置进行参考对照,android也提供了获取GPS信息的接口,实现的核心步骤如下:

1. 添加 import android.location.*;

2. 在 onecreate()函数中添加一个LocationManager 和 LocationListener

 

[c-sharp:firstline[5]] view plaincopy
  1. lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);      
  2. lListener = new MyLocationListener();     
  3. lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,60000,10,lListener);  

requestLocationUpdates中第一个参数可以使用GPS_PROVIDER或者NETWORK_PROVIDER,第二个参数是获取GPS信息的时间单位ms,设置时间太小的话会增加耗电,第三个参数是触发listener地址改变的位置变化,单位为米,这里设置10米之内的改变不做响应。

 

3. 定义自己的MyLocationListener()

[c-sharp:firstline[15]] view plaincopy
  1. private class MyLocationListener implements LocationListener  
  2. {  
  3.     //@Override  
  4.     public void onLocationChanged(Location loc) {  
  5.         if (loc != null)  
  6.         {                
  7.             mDefPoint=new GeoPoint((int)(loc.getLatitude()* 1E6),(int)(loc.getLongitude()* 1E6));  
  8.             mapController.animateTo(mDefPoint);    //跳转至GPS位置  
  9.             mapController.setCenter(mDefPoint);                     
  10.             addGPSLayer();                                     //加GPS图层  
  11.         }  
  12.     }  
  13.      
  14.     public void onProviderDisabled(String provider) {  
  15.         // TODO Auto-generated method stub  
  16.     }  
  17.     public void onProviderEnabled(String provider) {  
  18.         // TODO Auto-generated method stub  
  19.     }  
  20.     public void onStatusChanged(String provider, int status, Bundle extras) {  
  21.         // TODO Auto-generated method stub  
  22.     }  
  23. }    

 

4.  加入GPS点位图层,与添加自定义图层的方法一致

[c-sharp:firstline[50]] view plaincopy
  1. public void addGPSLayer()  
  2.  {  
  3.      List<Overlay> mapOverlays = mapView.getOverlays();  
  4.      Drawable drawable = this.getResources().getDrawable(R.drawable.pushpin_48px);  
  5.      HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);  
  6.       
  7.      OverlayItem GPSoverlayitem = new OverlayItem(mDefPoint, "Hello!""I'm here!");  
  8.      itemizedoverlay.addOverlay(GPSoverlayitem);  
  9.      
  10.      mapOverlays.clear();   //清除先前的图层,不然会叠加很多位置信息,当然如果想记录行程路线的话就不需要clear了  
  11.      addSiteLayer();           //重新加入自定义的基站图层  
  12.      mapOverlays.add(itemizedoverlay);   
  13.  }  

 

5. 程序的改动就上面这些了,如何在模拟器上对GPS信息进行仿真呢,

在Eclipse中选择 - window-show view -other - android - 选择 Emulator Control

在运行的过程中输入相应的经纬度信息,点击send就可以进行GPS仿真了,右下图的蓝色图标即为仿真GPS位置。

       

 

好了,一个添加自定义图层和GPS信息的android google map应用完成了,发布安装到自己的手机上试试吧

 

Android Google Map应用实例 - 发布Android Google Map 程序(Android mapview)

Android Google Map应用实例 - 在地图和卫星图之间切换(Android mapview)

Android Google Map应用实例 - 获取cdma基站经纬度(Android mapview)

转载http://blog.csdn.net/dengta_snowwhite/article/details/6246103

原创粉丝点击