有时候你需要将自己的GPS位置也标注到自定义图层上,以方便与先前添加的自定义图层的位置进行参考对照,android也提供了获取GPS信息的接口,实现的核心步骤如下:
1. 添加 import android.location.*;
2. 在 onecreate()函数中添加一个LocationManager 和 LocationListener
- lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
- lListener = new MyLocationListener();
- lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,60000,10,lListener);
requestLocationUpdates中第一个参数可以使用GPS_PROVIDER或者NETWORK_PROVIDER,第二个参数是获取GPS信息的时间单位ms,设置时间太小的话会增加耗电,第三个参数是触发listener地址改变的位置变化,单位为米,这里设置10米之内的改变不做响应。
3. 定义自己的MyLocationListener()
- private class MyLocationListener implements LocationListener
- {
- //@Override
- public void onLocationChanged(Location loc) {
- if (loc != null)
- {
- mDefPoint=new GeoPoint((int)(loc.getLatitude()* 1E6),(int)(loc.getLongitude()* 1E6));
- mapController.animateTo(mDefPoint); //跳转至GPS位置
- mapController.setCenter(mDefPoint);
- addGPSLayer(); //加GPS图层
- }
- }
- public void onProviderDisabled(String provider) {
- // TODO Auto-generated method stub
- }
- public void onProviderEnabled(String provider) {
- // TODO Auto-generated method stub
- }
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // TODO Auto-generated method stub
- }
- }
4. 加入GPS点位图层,与添加自定义图层的方法一致
- public void addGPSLayer()
- {
- List<Overlay> mapOverlays = mapView.getOverlays();
- Drawable drawable = this.getResources().getDrawable(R.drawable.pushpin_48px);
- HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
- OverlayItem GPSoverlayitem = new OverlayItem(mDefPoint, "Hello!", "I'm here!");
- 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.csdn.net/dengta_snowwhite/article/details/6246103