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