android之高德地图学习
,在android的manifest.xml中加入如下的这些所需权限<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
//高德所需要的唯一key[需要你在高德官网申请即可]
<meta-data android:name="com.amap.api.v2.apikey" android:value="0274d320d6e750dc88a8c10b1f69f5be" />
在 main.xml中放置我们要显示的map
它不是我们的overlay,它是我们手动打到map上我们自定义的view,用来一些额外的操作,暂且我们命名为:widget_pop.xml相关的布局文件比较简单,与我们平常的布局没有任何区别;然后是我们自定义的widgetView类【主要完成在map上的展示:不是map的overlay】,关键代码如下:
private void showSingleLocationOnMap(GeoPoint inGeoPoint, Vehicle inVehicle){if (myMapView != null && myMapView.getOverlays() != null){VehicleOverlay myCaroverlay = new VehicleOverlay(inGeoPoint,VehicleStatusBitmapUtil.getStatusBitmap( getApplicationContext(), Integer.parseInt( inVehicle.getVI_STATUS() ) ) );myMapView.getOverlays().add( myCaroverlay );}}经过上面的5个步骤,我们基本完成了将一个自定义的view添加到map,同时展示对应的overlay的过程。。。。。。也有一些其它的细节需要注意,就是当我们点击map视图时,其它的视图应该恢复的初始状态,也就是在GestureDetetor的
@Override
public boolean onSingleTapUp(MotionEvent e)
{//恢复相关的状态
shrinkAllPopup();
return false;
}private void shrinkAllPopup()
{
if (myMapPopViews != null)
for ( MapPopView tempMapPopView : myMapPopViews )
tempMapPopView.shrinkPopView();
}
下面链接几个关键类:高德地图关键类