OnMarkerDragListener用于标记位置沿着关联的圈子谷歌地图Android

时间:2015-05-06 03:57:02

标签: android google-maps-android-api-2

我正在开发一个应用程序,其中我有两个标记,一个用于源,一个用于目标,并且有两个与它们关联的圆圈.OnMarkerDragListener监听器我能够拖动标记但是我如何处理特定的圆圈到沿标记移动。因为两个标记都有OnMarkerDragListener侦听器。我怎么能知道源和目标中的哪个标记已移动,以便删除与其关联的特定圆圈而不删除另一个标记的圆圈。

 Marker sourceMarker;
 Marker destinationMarker;


Circle srcCircle; //circle associated with sourceMarker
Circle destCircle ; // cricle associated with destinationMarker
. .  . 
. . .
mMap.setOnMarkerDragListener(new OnMarkerDragListener() {

                @Override
                public void onMarkerDragStart(Marker marker) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onMarkerDragEnd(Marker marker) {
                    Geocoder gc = new Geocoder(SourceDestinationActivity.this);
                    List<Address> list = null;
                    LatLng ll = marker.getPosition();
                    try {
                        list = gc.getFromLocation(ll.latitude, ll.longitude, 1);
                    } catch (IOException e) {

                        e.printStackTrace();
                        return;
                    }
                    Address add = list.get(0);
                    marker.setTitle(add.getLocality());
                    marker.setSnippet(add.getCountryName());
                    marker.showInfoWindow();


                }

                @Override
                public void onMarkerDrag(Marker marker) {
                    // TODO Auto-generated method stub

                }
            });
        }
        return (mMap != null);
    }

 . . . . .
 . . . . . 

private Circle drawCircle(LatLng ll,int range){
        Toast.makeText(this, "circle", Toast.LENGTH_LONG).show();
        CircleOptions options = new CircleOptions().center(ll).radius(range).fillColor(0x98e698).strokeColor(0x1e7b1e);
        return mMap.addCircle(options);
    }

1 个答案:

答案 0 :(得分:0)

请参阅onMarkerDrag的文档。您需要保留标记的成员变量,并对正在拖动的marker进行相等性检查。