package com.amapv2.cn.apis;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.SupportMapFragment;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.MarkerOptions;
import com.amapv2.cn.apis.util.AMapUtil;
import com.amapv2.cn.apis.util.Constants;
import com.example.lokal.R;
/**
* AMapV2地图中简单介绍一些Camera的用法.
*/
public class CameraDemoActivity extends FragmentActivity {
private static final int SCROLL_BY_PX = 30;
static final CameraPosition ZHONGGUANCUN = new CameraPosition.Builder()
.target(Constants.ZHONGGUANCUN).zoom(18).bearing(70).tilt(0)
.build();
static final CameraPosition LUJIAZUI = new CameraPosition.Builder()
.target(Constants.SHANGHAI).zoom(18).bearing(0).tilt(70).build();
private AMap aMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera_demo);
init();
}
/**
* 初始化AMap对象
*/
private void init() {
if (aMap == null) {
aMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
if (AMapUtil.checkReady(this, aMap)) {
setUpMap();
}
}
}
private void setUpMap() {
aMap.addMarker(new MarkerOptions()
.position(Constants.FANGHENG)
.snippet("方恒国际中心大楼")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
}
/**
* 点击“去中关村”按钮响应事件
*/
public void onGoToZhongguancun(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.newCameraPosition(ZHONGGUANCUN));
}
}
/**
* 点击“去陆家嘴”按钮响应事件
*/
public void onGoToLujiazui(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.newCameraPosition(LUJIAZUI));
}
}
/**
* 点击地图缩小按钮响应事件
*/
public void onZoomIn(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.zoomIn());
}
}
/**
* 点击地图放大按钮响应事件
*/
public void onZoomOut(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.zoomOut());
}
}
/**
* 点击向左移动按钮响应事件,camera将向左边移动
*/
public void onScrollLeft(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.scrollBy(-SCROLL_BY_PX, 0));
}
}
/**
* 点击向右移动按钮响应事件,camera将向右边移动
*/
public void onScrollRight(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.scrollBy(SCROLL_BY_PX, 0));
}
}
/**
* 点击向上移动按钮响应事件,camera将向上边移动
*/
public void onScrollUp(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.scrollBy(0, -SCROLL_BY_PX));
}
}
/**
* 点击向下移动按钮响应事件,camera将向下边移动
*/
public void onScrollDown(View view) {
if (AMapUtil.checkReady(this, aMap)) {
changeCamera(CameraUpdateFactory.scrollBy(0, SCROLL_BY_PX));
}
}
private void changeCamera(CameraUpdate update) {
aMap.moveCamera(update);
}
}