zoukankan      html  css  js  c++  java
  • ArcGIS Runtime for Android开发教程V2.0(8)基础篇地图事件

    目录

    1. MapOnTouchListener
    2. OnLongPressListener
    3. OnPanListener
    4. OnPinchListener
    5. OnSingleTapListener
    6. OnStatusChangedListener
    7. OnZoomListener

     ArcGIS Runtime sdk for Android为我们提供了丰富的事件监听器,本节将主要介绍我们经常使用的监听器,并且介绍通过这些监听器可以实现哪些功能,在下面的监听器中只有MapOnTouchListener是类,其他皆为接口类型,如图所示:

      1.1 MapOnTouchListener

            MapOnTouchListener是MapView最为重要的监听器之一,它实现了OnTouchListener和MapGestureDetector.OnGestureListener接口,对于地图的所有操作MapOnTouchListener都可以进行相应,使用非常方便,在使用前我们只需扩展这个类并重写该类中的方法即可。用法如下

    myListener = new MyTouchListener(this, mapView);
            mapView.setOnTouchListener(myListener);
            /*
         * MapView's touch listener
         */
        class MyTouchListener extends MapOnTouchListener {
            
            public MyTouchListener(Context context, MapView view) {
                super(context, view);
            }
            public void setType(String geometryType) {
                this.type = geometryType;
            }
            public String getType() {
                return this.type;
            }
            public boolean onSingleTap(MotionEvent e) {
                return true;
            }        
            public boolean onDragPointerMove(MotionEvent from, MotionEvent to) {        
                return super.onDragPointerMove(from, to);
            }
            @Override
            public boolean onDragPointerUp(MotionEvent from, MotionEvent to) {
                return super.onDragPointerUp(from, to);
            }
        }

             通过上面代码的方式我们就可以监听到不同的手势操作,对于不同的手势操作将执行不通过方法,通过这些方法我们可以添加我们所需的操作功能。如,当我们在地图上点击时弹出一个窗体,我们只需在onSingleTap()方法中完成点的获取、窗体的创建及其弹出操作即可。

        

    1.2 OnLongPressListener

     OnLongPressListener接口主要用于监听在地图上的长按事件,用法如下:

    //为地图添加一个长按监听器
    mapView.setOnLongClickListener(new View.OnLongClickListener() {
                //长按后自动执行的方法
                public boolean onLongClick(View v) {
                    // TODO Auto-generated method stub
                    return false;
                }
            });

    1.3 OnPanListener

            OnPanListener接口是用于当我们在MapView上平移地图操作时的事件监听,用法如下:

    //为地图添加一个平移监听器
    mapView.setOnPanListener(new OnPanListener() {            
            public void prePointerUp(float fromx, float fromy, float tox, float toy) {
                }            
            public void prePointerMove(float fromx, float fromy, float tox, float toy) {            }
                
            public void postPointerUp(float fromx, float fromy, float tox, float toy) {            }
                
    public void postPointerMove(float fromx, float fromy, float tox, float toy) {                
                }
            });

    1.4   OnPinchListener

            OnPinchListener接口也是我们经常用到,它是对地图进行两指或多指进行操作时用到的事件监听,比如我们可以通过该接口实现两指夹/捏进行地图地图缩放。用法如下:

    //为地图添加夹/捏监听器
    mapView.setOnPinchListener(new OnPinchListener() {            
                public void prePointersUp(float x1, float y1, float x2, float y2,
                        double factor) {                
                }            
                public void prePointersMove(float x1, float y1, float x2, float y2,
                        double factor) {                
                }            
                public void prePointersDown(float x1, float y1, float x2, float y2,
                        double factor) {                
                }            
                public void postPointersUp(float x1, float y1, float x2, float y2,
                        double factor) {                
                }            
                public void postPointersMove(float x1, float y1, float x2, float y2,
                        double factor) {                
                }            
                public void postPointersDown(float x1, float y1, float x2, float y2,
                        double factor) {                
                }
            });
     

    1.5   OnSingleTapListener

           OnSingleTapListener接口是我们对地图进行点击操作时的事件监听器,用法如下:

    //为地图添加单击事件监听
    mapView.setOnSingleTapListener(new OnSingleTapListener() {
        //点击地图后自动执行的方法
        public void onSingleTap(float x, float y) {
        // TODO Auto-generated method stub
                    
        }
    });

    1.6    OnStatusChangedListener

          OnStatusChangedListener接口用于监听MapView或Layer状态变化的监听器,用法如下:

    //添加状态监听器
    mapView.setOnStatusChangedListener(new OnStatusChangedListener() {    
        public void onStatusChanged(Object source, STATUS status) {
            if(status == STATUS.INITIALIZED){                    
            }else if(status == STATUS.LAYER_LOADED){                    
            }else if((status == STATUS.INITIALIZATION_FAILED)){                
            }else if((status == STATUS.LAYER_LOADING_FAILED)){                
            }                
        }
    });

            从上面的代码我们可以清晰看到,对于MapView的状态变化主要有四种:

    1)      STATUS.INITIALIZED初始化成功

    2)      STATUS.LAYER_LOADED图层加载成功

    3)      STATUS.INITIALIZATION_FAILED初始化失败

    4)      STATUS.LAYER_LOADING_FAILED图层加载失败

    1.7    OnZoomListener

           OnZoomListener接口主要监听地图的缩放事件,用法如下:

    mapView.setOnZoomListener(new OnZoomListener() {
        //缩放之前自动调用的方法
        public void preAction(float pivotX, float pivotY, double factor) {
        }    
           //缩放之后自动调用的方法        
        public void postAction(float pivotX, float pivotY, double factor) {
        }
    });
      

             到此,地图上的所有监听器都已经介绍完了,如有不明,可以加入ArcGIS 4 Android 群:167467748或250106494进行咨询。

    原文链接:http://blog.csdn.net/arcgis_mobile/article/details/8263283

  • 相关阅读:
    Informix IDS 11琐细管理(918测验)认证指南,第8局部:面向管理员的SQL特征(3)
    Informix IDS 11体系办理(918检验)认证指南,第8部门:面向办理员的SQL特征(1)
    DB2 9 根基(730 考试)认证指南,第 2 局部: 安然性(2)
    漫衍式 DB2 9.5 数据效能器对比
    Informix IDS 11零碎筹划(918检验)认证指南,第8部分:面向筹划员的SQL特性(1)
    Informix IDS 11系统打点(918测验)认证指南,第 7 部门: IDS复制(23)
    Informix IDS 11琐细管理(918测验)认证指南,第 7 部门: IDS复制(21)
    Informix IDS 11琐细经管(918考试)认证指南,第8局部:面向经管员的SQL特性(8)
    Informix IDS 11系统治理(918测验)认证指南,第 7 部门: IDS复制(25)
    Informix IDS 11体系管理(918检修)认证指南,第8部门:面向管理员的SQL特性(5)
  • 原文地址:https://www.cnblogs.com/dwf07223/p/3085900.html
Copyright © 2011-2022 走看看