package com.zondy.mapgismobile2dsample.maptool; import android.app.Activity; import android.content.Intent; import android.graphics.PointF; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.zondy.mapgis.android.mapview.MagnifierOption; import com.zondy.mapgis.android.mapview.MapView; import com.zondy.mapgis.core.geometry.Dot; import com.zondy.mapgis.core.geometry.Rect; import com.zondy.mapgismobile2dsample.R; import com.zondy.mapgismobile2dsample.mapgismobile2dsample.FilePath; public class MagnifierTool_Activity extends Activity { //地图容器 public MapView mapView = null; //放大镜是否开启标识 private boolean flag = true; //屏幕的高,宽 private int width = 0; private int height = 0; //放大键功能按钮 private Button magnifierBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_magnifiertool); //初始化标题栏布局 initView(); // 根据屏幕的高宽设定各个点的坐标 DisplayMetrics dm = getResources().getDisplayMetrics(); width = dm.widthPixels; height = dm.heightPixels; //加载地图 showMap(); } /** * 加载地图 */ private void showMap() { //获取地图容器 mapView = (MapView) findViewById(R.id.magnifier_mapview); //异步方法加载地图 mapView.loadFromFileAsync(FilePath.MAPX_FILE_PATH); //异步加载地图回调监听 mapView.setMapLoadListener(new MapView.MapViewMapLoadListener() { //开始加载事件 @Override public void mapViewWillStartLoadingMap(MapView arg0, String arg1) { Toast.makeText(MagnifierTool_Activity.this, "开始加载地图", Toast.LENGTH_SHORT).show(); } @Override public void mapViewDidFinishLoadingMap(MapView arg0, String arg1) { Toast.makeText(MagnifierTool_Activity.this, "地图加载完成", Toast.LENGTH_SHORT).show(); //缩放地图到指定范围 Rect rect = new Rect(12705276.572663, 3542912.332349, 12746062.170780, 3607262.942711); mapView.zoomToRange(rect, false); } @Override public void mapViewDidFailLoadingMap(MapView arg0, String arg1) { Toast.makeText(MagnifierTool_Activity.this, "地图加载失败", Toast.LENGTH_SHORT).show(); } }); } /** * 放大镜工具按钮 * * @param v 视图 */ public void MagnifierHandle(View v) { magnifierBtn = (Button) findViewById(R.id.magnifier_tool); if (flag == true) { Dot dot = mapView.getCenterPoint(); // PointF pointf = mapView.mapPointToViewPoint(dot); PointF pointf = new PointF(0, 0); //创建放大镜对象 MagnifierOption magnifier = new MagnifierOption(width / 3, 2.5f, MagnifierOption.AUTO_ADJUST_POINT, pointf); //设置放大镜位置调整模式 magnifier.setPointAdjustMode(MagnifierOption.AUTO_ADJUST_POINT); //打开放大镜功能 mapView.turnOnMagnifier(magnifier); magnifierBtn.setText("关闭放大镜"); flag = false; } else { //关闭放大镜功能 mapView.turnOffMagnifier(); magnifierBtn.setText("开启放大镜"); flag = true; } } /** * 初始化基本布局:设置标题、返回布局点击事件 */ public void initView() { //接收传递的参数 Intent intent = getIntent(); String title = intent.getStringExtra("activity_title"); //修改标题 TextView textview = (TextView) findViewById(R.id.tv_title); textview.setText(title); //注册布局点击事件:结束当前activity,返回 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.ll_back); linearLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } }