更新:我通过添加previousMarker对象解决了性能问题。因此,只有先前点击的标记将被删除并替换为默认图标。但是,当我点击标记时,信息窗口仍未显示。
我有一个地图视图,并在其上设置了一些标记。我想要的是,当我单击标记时,它会将其图标更改为不同的图标,并且当我单击另一个标记时,先前标记的图标应更改为其原始图标。
我所做的类似于这样,但每次单击标记时它只是简单地更改标记图标。
我有一个地图视图,并在其上设置了一些标记。我想要的是,当我单击标记时,它会将其图标更改为不同的图标,并且当我单击另一个标记时,先前标记的图标应更改为其原始图标。
我所做的类似于这样,但每次单击标记时它只是简单地更改标记图标。
@Override
public boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped.
LatLng markerPos=marker.getPosition();
String markerLocationName=marker.getTitle();
String markerSubCategoryName=marker.getSnippet();
marker.remove();
MarkerOptions markerOptions =
new MarkerOptions().position(markerPos)
.title(markerLocationName)
.snippet(markerSubCategoryName)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.new_icon));// Changing marker icon
mMap.addMarker(markerOptions);
Log.d("marker","change marker icon"); // can open a dialog window here
return false;
}
如果我点击了2个标记,就会出现2个新的图标,但是我想要的只是当前点击的标记更改其图标。
因此,我也添加了两行代码来实现这样的效果。它成功地实现了我想要的效果,但也有一些缺点(见下文)。
@Override
public boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped.
mMap.clear();
populateAllMarkersOnMap();//repopulate markers on map
LatLng markerPos=marker.getPosition();
String markerLocationName=marker.getTitle();
String markerSubCategoryName=marker.getSnippet();
marker.remove(); //remove the current clicked marker
MarkerOptions markerOptions =
new MarkerOptions().position(markerPos)
.title(markerLocationName)
.snippet(markerSubCategoryName)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.new_icon));// Changing marker icon
mMap.addMarker(markerOptions); //add marker with new icon into map
return false;
}
缺点是:1/它“禁用”了信息窗口(在第一种方式中也发生了同样的事情)。2/它会清除地图上所有的标记,然后重新设置所有的标记。想象一下,我有100个标记,每次点击时都会成为性能问题,这应该怎么办呢?
populateAllMarkersOnMap()目前可以简单地写成以下内容:
private void populateAllMarkersOnMap(){
setMarker(latA1, lonA1, "A1","A1.1");
setMarker(latA2, lonA2, "A2","A2.1");
// ... (100 times or populated via a loop)
};
当我点击新的标记时,是否有一种方法可以使先前点击的标记将其图标恢复为默认值?如果您认为我应该为我的问题提供另一个标题,请帮忙。抱歉我的英语不好。
previousMarker
标记作为初始阶段了吗? - pRaNaY