具体步骤如下:
步骤一:添加高德地图
步骤二:高德地图初始化完成后
步骤三:添加一个 marker,将 marker 的 icon 换成小红旗。
list是一个List<MarkerOptions>,遍历List然后调用AMap对象的addMarker()方法就好。for (int i = 0i <list.size()i++) {
MarkerOptions marker = list.get(i)
aMap.addMarker(marker)
}
关于MarkerOptions的创建:
MarkerOptions option = new MarkerOptions()
//设置坐标点
option.position(new LatLng(lat, lng))
移除marker
List<Marker>saveMarkerList = aMap.getMapScreenMarkers()
if (saveMarkerList == null || saveMarkerList.size() <= 0)
return
for (Marker marker : saveMarkerList) {
marker.remove()
}
希望能帮到你...
1)添加高德SDK(2)配置AndroidManifest文件
(3)创建地图
(4)控件交互
(5)方法交互
(6)地图截图
(7)添加Marker标记 上面我大致分为了7部分,其中第(1)、(2)部分在高德定位的博客中有说,本篇就不再多述。不同的地方就是我们需要添加地图的SDK以及armebi文件:
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)
(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
}
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)