Android Google Map实例 - 添加GPS位置标注(Android mapview)
有时候你需要将自己的GPS位置也标注到自定义图层上,以方便与先前添加的自定义图层的位置进行参考对照,android也提供了获取GPS信息的接口,实现的核心步骤如下:
1. 添加 import android.location.*;
2. 在 onecreate()函数中添加一个LocationManager 和 LocationListener
- lManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
- lListener=newMyLocationListener();
- lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,60000,10,lListener);
requestLocationUpdates中第一个参数可以使用GPS_PROVIDER或者NETWORK_PROVIDER,第二个参数是获取GPS信息的时间单位ms,设置时间太小的话会增加耗电,第三个参数是触发listener地址改变的位置变化,单位为米,这里设置10米之内的改变不做响应。
3. 定义自己的MyLocationListener()
- privateclassMyLocationListenerimplementsLocationListener
- {
- //@Override
- publicvoidonLocationChanged(Locationloc){
- if(loc!=null)
- {
- mDefPoint=newGeoPoint((int)(loc.getLatitude()*1E6),(int)(loc.getLongitude()*1E6));
- mapController.animateTo(mDefPoint);//跳转至GPS位置
- mapController.setCenter(mDefPoint);
- addGPSLayer();//加GPS图层
- }
- }
- publicvoidonProviderDisabled(Stringprovider){
- //TODOAuto-generatedmethodstub
- }
- publicvoidonProviderEnabled(Stringprovider){
- //TODOAuto-generatedmethodstub
- }
- publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){
- //TODOAuto-generatedmethodstub
- }
- }
4. 加入GPS点位图层,与添加自定义图层的方法一致
- publicvoidaddGPSLayer()
- {
- List<Overlay>mapOverlays=mapView.getOverlays();
- Drawabledrawable=this.getResources().getDrawable(R.drawable.pushpin_48px);
- HelloItemizedOverlayitemizedoverlay=newHelloItemizedOverlay(drawable,this);
- OverlayItemGPSoverlayitem=newOverlayItem(mDefPoint,"Hello!","I'mhere!");
- itemizedoverlay.addOverlay(GPSoverlayitem);
- mapOverlays.clear();//清除先前的图层,不然会叠加很多位置信息,当然如果想记录行程路线的话就不需要clear了
- addSiteLayer();//重新加入自定义的基站图层
- mapOverlays.add(itemizedoverlay);
- }
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.****.net/dengta_snowwhite/article/details/6246103