使图形可点击,而不是在地图中创建新图形

时间:2018-09-05 07:34:51

标签: android arcgis esri arcgis-android-api

因此,我有一个带有MapOnTouchListener的地图。我已经重写了OnSingleTap方法(allPoints是一个数组,其中添加了所有与此问题功能无关的标记):

@Override
    public boolean onSingleTap(MotionEvent point) {
        Point mapPoint=view.toMapPoint(point.getX(), point.getY());
        new GeocoderAsynckTask(mapPoint,view).execute(mapPoint);
        SpatialReference sp = SpatialReference.create(SpatialReference.WKID_WGS84);
        Point p1Done=(Point) GeometryEngine.project(mapPoint, mvHelper.getMapView().getSpatialReference(), sp);
        allPoints.add(p1Done);
        return super.onSingleTap(point);
    }

该GeoCoderAsyncTask将点的坐标转换为地址,并在地图上添加标记。地理编码恰好完成,我得到了我的地址,然后在PostExecute方法中将标记添加到地图:

protected void onPostExecute(String address) {
        mProgressDialog.dismiss();
        Toast.makeText(ctx,address,Toast.LENGTH_LONG).show();
        SpatialReference sp = SpatialReference.create(SpatialReference.WKID_WGS84);
        Point p1Done=(Point) GeometryEngine.project(point, mvHelper.getMapView().getSpatialReference(), sp);
        mvHelper.addMarkerGraphic(p1Done.getY(), p1Done.getX(), "Location", address, android.R.drawable.ic_menu_myplaces, null, false, 1);
    }

问题是,我希望标记是可单击的,但是如果单击它们,则会添加另一个标记。我试图使MapOnTouchListener无效,但是那样就不会添加任何标记,也不会检测到单击标记...

我该如何完成?

谢谢。

编辑:

如果我只是在应用执行开始时就在地图上设置了SingleTapListener而不是设置MapOnTouchListener,那么标记将被创建并且可以点击:

mMapView.setOnSingleTapListener(new OnSingleTapListener() {
        @Override
        public void onSingleTap(float v, float v1) {
            mMapView.createIcon(v,v1);
        }
    });

在那之后,通过单击一个按钮,我设置了MapOnTouchListener,因为我需要另一个功能(创建一个信封并将点存储在数组内的数组中)。之后,我尝试使MapOnTouchListener无效,然后在执行开始时将singleTapListener设置为……并创建标记,但无法单击!!

0 个答案:

没有答案