Marker没有从mapV2 android中删除

时间:2013-05-14 08:22:55

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

我在触摸地图时添加了一个制作工具,想要点击某个按钮删除该标记,但该标记不会从地图中删除。这是我的代码

    // Marker of end Point
Marker endPointMarker;

点击地图

        @Override
public void onMapClick(LatLng point) {
    // TODO Auto-generated method stub
    double lat = point.latitude;
    double lng = point.longitude;

    // Add marker of destination point

            try {
                Geocoder geocoder;
                List<Address> addresses;
                geocoder = new Geocoder(BookCabScreen.this);
                if (lat != 0 || lng != 0) {
                    addresses = geocoder.getFromLocation(lat, lng, 1);
                    String address = addresses.get(0).getAddressLine(0);
                    String city = addresses.get(0).getAddressLine(1);
                    String country = addresses.get(0).getAddressLine(2);
                    Log.d("TAG", "address = " + address + ", city =" + city
                            + ", country = " + country);
                    endPointMarker = mMap.addMarker(new MarkerOptions()
                            .position(new LatLng(lat, lng))
                            .title("Location").snippet("" + address));

                    markers.add(mMap.addMarker(new MarkerOptions()
                            .position(new LatLng(lat, lng))
                            .title("Location").snippet("" + address)));
                    btnStartUp.setEnabled(true);
                    btnStopPoint.setEnabled(true);

                    mJbBookCab.setEndPointLat(lat);
                    mJbBookCab.setEndPointLng(lng);
                } else {
                    Toast.makeText(BookCabScreen.this,
                            "latitude and longitude are null",
                            Toast.LENGTH_LONG).show();

                }
            } catch (Exception e) {
                e.printStackTrace();

            }


}

点击按钮

            if (endPointMarker != null) {
            endPointMarker.remove();

            endPointMarker = null;
        }

但它不是从地图上删除的吗?请帮忙

2 个答案:

答案 0 :(得分:2)

您要添加两次相同的标记:

                endPointMarker = mMap.addMarker(new MarkerOptions()
                        .position(new LatLng(lat, lng))
                        .title("Location").snippet("" + address));

                markers.add(mMap.addMarker(new MarkerOptions()
                        .position(new LatLng(lat, lng))
                        .title("Location").snippet("" + address)));

只需移除一次对GoogleMap.addMarker的调用。

答案 1 :(得分:0)

你正在做的是正确的但是如果这不起作用那么你可以在你的onclick方法中使用mMap.clear()这将删除所有标记,或者如果你只想要一个特定的标记不显示那么你可以使用endPointMarker.setVisible(假)