Arcgis for Android 处理点击地图触发地图平移监听的问题

来源:互联网 发布:程序员难学吗 编辑:程序博客网 时间:2024/06/07 06:06

  在开发的过程中,遇到需要使用地图的平移监听,在地图平移的监听中需要显示当前范围内的楼块数据,也就是在地图平移后绘制Graphic,但是点击地图是也会触发平移监听(重新绘制Graphic),影响到用户的使用体验,因此需要在平移监听中过滤掉点击事件,使用户点击时,不重新绘制Graphic。

        // 地图平移监听事件        mMapView.setOnPanListener(new OnPanListener() {            @Override            public void prePointerMove(float v, float v1, float v2, float v3) {                if (mStartX == 0 && mStartY == 0) {                    mStartX = v;                    mStartY = v1;                }            }            @Override            public void postPointerMove(float v, float v1, float v2, float v3) {            }            @Override            public void prePointerUp(float v, float v1, float v2, float v3) {            }            @Override            public void postPointerUp(float v, float v1, float v2, float v3) {                double distance = Math.sqrt((v2 - mStartX) * (v2 - mStartX) +                        (v3 - mStartY) * (v3 - mStartY));                if (distance < 150) {                    mStartX = 0;                    mStartY = 0;                    return;                }                mStartX = 0;                mStartY = 0;                drawExtentGraphic();            }        });
  • mStartX:记录初始X的值
  • mStartY:记录初始Y的值
  • distance:初始点与结束点的距离

   因为平移监听中的回调在移动的过程中都会实时回调,无法记录初始位置,所以就需要自己定义变量自己记录,并且手动初始化(记录完毕,赋值为0);可以根据自己需要,来修改判断条件(distance < 150)。

  希望对各位有所帮助~

原创粉丝点击