Android Google地图在当前位置显示多个标记

时间:2015-08-18 06:05:17

标签: android google-maps

大家好我在谷歌地图中使用自定义标记图像。我的问题是,当我点击该标记或放大或缩小此标记重复意味着,更多标记出现在不同点上的相同位置。为什么会这样?怎么避免呢? 提前谢谢。

代码

   @Override
   public void onLocationChanged(Location location) 
   {
     TextView tvLocation = (TextView) findViewById(R.id.tv_location);

     // Getting latitude of the current location
     latitude = location.getLatitude();

     // Getting longitude of the current location
     longitude = location.getLongitude();

     // Creating a LatLng object for the current location
     LatLng latLng = new LatLng(latitude, longitude);

    // Showing the current location in Google Map
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    // Zoom in the Google Map
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));

    // Setting latitude and longitude in the TextView tv_location
    tvLocation.setText("Latitude:" +  latitude  + ", Longitude:"+ longitude );
    MarkerOptions markerOptions = new MarkerOptions();

    // Setting position for the marker
    markerOptions.position(latLng);

    // Setting custom icon for the marker
    //  markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.compass_needle));

    // Setting title for the infowindow


    // Adding the marker to the map
    googleMap.addMarker(markerOptions);
    // markerOptions.rotation(260);
  }

2 个答案:

答案 0 :(得分:3)

您正在添加标记,但未清除之前添加的绿色标记,因此您必须在再次更改位置时清除以前添加的标记。

googleMap.addMarker(markerOptions);

上方添加此行
googleMap.clear();
googleMap.addMarker(markerOptions);

我希望它有所帮助!

答案 1 :(得分:2)

更正确的是删除特定标记,而不是清除整个地图。 因为您可以在地图上添加其他标记和折线。

在您的情况下,您只有一个标记显示用户位置。 你可以在添加时获得它。

private Marker mLocationMarker;

public void onLocationChanged(Location location) {
    ...
    if(mLocationMarker != null) {
        mLocationMarker.remove();
    } 
    mLocationMarker = googleMap.addMarker(markerOptions);
}