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();
            }
        });
    }

}