天天看点

android高德地图后台运行,Android手把手教你集成高德地图

在上一篇博客上,和大家分享了如何在Android中集成高德定位以及定位的基本使用。今天我们就来看看高德地图在Android中如何使用吧。

同样,我将本篇博客的内容分为如下部分:

(1)添加高德SDK

(2)配置AndroidManifest文件

(3)创建地图

(4)控件交互

(5)方法交互

(6)地图截图

(7)添加Marker标记 上面我大致分为了7部分,其中第(1)、(2)部分在高德定位的博客中有说,本篇就不再多述。不同的地方就是我们需要添加地图的SDK以及armebi文件:

android高德地图后台运行,Android手把手教你集成高德地图
android高德地图后台运行,Android手把手教你集成高德地图

ok,下面正式进入地图的使用。

(1)创建地图:即在XML中添加即可。

android:id="@+id/mapview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

然后重写Activity的生命周期方法,并在其中调用MapView相对的生命周期方法:

@Override

protected void onCreate() {

mMapView = (MapView) findViewById(R.id.mapview);

mMapView.onCreate(savedInstanceState);//此方法必须重写

if(mMap == null) {

mMap = mMapView.getMap();

}

// 地图模式可选类型:

// MAP_TYPE_NORMAL:普通模式(默认)

// MAP_TYPE_SATELLITE:卫星地图模式

// MAP_TYPE_NIGHT:夜间模式

// mMap.setMapType(AMap.MAP_TYPE_SATELLITE);

}

@Override

protected void onResume() {

super.onResume();

mMapView.onResume();

}

@Override

protected void onPause() {

super.onPause();

mMapView.onPause();

}

@Override

protected void onDestroy() {

super.onDestroy();

mMapView.onDestroy();

}

(2)控件交互:高德允许我们在地图上显示一些交互的控件。

mUiSettings = mMap.getUiSettings();

//控制定位到当前按钮的显示和隐藏

mUiSettings.setMyLocationButtonEnabled(true);

//控制缩放控件的显示和隐藏。

mUiSettings.setZoomControlsEnabled(true);

//控制指南针的显示和隐藏。

mUiSettings.setCompassEnabled(true);

//显示比例尺控件:例如1:10Km

mUiSettings.setScaleControlsEnabled(true);

android高德地图后台运行,Android手把手教你集成高德地图
android高德地图后台运行,Android手把手教你集成高德地图

(3)方法交互:

1.改变地图中心点

CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(

new CameraPosition(new LatLng(39.977290,116.337000),//新的中心点坐标

18, //新的缩放级别

30, //俯仰角0°~45°(垂直与地图时为0)

0  偏航角 0~360° (正北方为0)

));

改变地图中心点有两种方式:

(1)平滑地移动地图:第二个参数为移动时长

mMap.animateCamera(cameraUpdate, 1000, new AMap.CancelableCallback() {

@Override

public void onFinish() {

}

@Override

public void onCancel() {

}

});

(2)直接应用新的视图

mMap.moveCamera(cameraUpdate);

2.改变地图缩放级别

zoomTo是缩放地图到指定的缩放级别,ZoomIn是缩放地图到当前缩放级别的上一级

mMap.moveCamera(CameraUpdateFactory.zoomTo(17));//将地图的缩放级别调整到17级

(4)地图截取:高德提供了地图截取功能,可以在截取后获取到Bitmap

mMap.getMapScreenShot(new AMap.OnMapScreenShotListener() {

@Override

public void onMapScreenShot(Bitmap bitmap) {

}

@Override

public void onMapScreenShot(Bitmap bitmap, int i) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

if(null == bitmap){

return;

}

//保存截图

try {

FileOutputStream fos = new FileOutputStream(

Environment.getExternalStorageDirectory() + "/test_"

+ sdf.format(new Date()) + ".png");

boolean b = bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);

try {

fos.flush();

} catch (IOException e) {

e.printStackTrace();

}

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

StringBuffer buffer = new StringBuffer();

if (b)

buffer.append("截屏成功 ");

else {

buffer.append("截屏失败 ");

}

if (i != 0)

buffer.append("地图渲染完成,截屏无网格");

else {

buffer.append( "地图未渲染完成,截屏有网格");

}

//ToastUtil.show(ScreenShotActivity.this, buffer.toString());

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

});

(5)添加Marker标记。

LatLng latLng = new LatLng(39.906901,116.397972);

Marker marker = mMap.addMarker(new MarkerOptions()

.draggable(true)//可拖拽

.setFlat(true)//将Marker设置为贴地显示,可以双指下拉看效果

.icon(BitmapDescriptorFactory

.fromResource(R.drawable.ic_location_mark))//Marker图标

.title("marker标记")//标题

.position(latLng));

//显示InfoWindow

if(!marker.isInfoWindowShown()) {

marker.showInfoWindow();

}

//Marker点击事件

mMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {

@Override

public boolean onMarkerClick(Marker arg0) {

return false;

}

});

ok,以上就是关于高德地图的基本使用,最后我们看下效果(手机截图):

android高德地图后台运行,Android手把手教你集成高德地图

相信大家对使用高德地图有了更深的认识。关于地图SDK其他的一些功能,大家可以去官网了解。