Java 单击地图上的更改标记图标
您好,我正在制作谷歌地图应用程序,在我的应用程序中添加面积测量功能,在面积测量中,用户单击地图,标记设置在定点区域如果用户指向七个位置,则七个标记设置在定点位置,但我更改每个点上的标记图标,但图标从未更改请帮助我更改每次单击时的标记图标Java 单击地图上的更改标记图标,java,android,google-maps,Java,Android,Google Maps,您好,我正在制作谷歌地图应用程序,在我的应用程序中添加面积测量功能,在面积测量中,用户单击地图,标记设置在定点区域如果用户指向七个位置,则七个标记设置在定点位置,但我更改每个点上的标记图标,但图标从未更改请帮助我更改每次单击时的标记图标 My code is public void onMapReady(final GoogleMap googleMap) { mMap = googleMap; marker = BitmapDesc
My code is
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);
pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);
changeView(getSharedPreferences("settings", Context.MODE_PRIVATE)
.getInt("mapView", GoogleMap.MAP_TYPE_NORMAL));
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(final Marker clickcount) {
marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);
pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);
addPoint(clickcount.getPosition());
return true;
}
});
mMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(final LatLng center) {
clickcounter=clickcounter+1;
if (clickcounter==1){
if (marker!=null){
Toast.makeText(getApplicationContext(),"1",Toast.LENGTH_SHORT).show();
marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);
}
}if (clickcounter==2){
Toast.makeText(getApplicationContext(),"2",Toast.LENGTH_SHORT).show();
pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
addPoint(center);
}if (clickcounter==3){
Toast.makeText(getApplicationContext(),"3",Toast.LENGTH_SHORT).show();
pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);
addPoint(center);
}
}
});
private Marker drawMarker(final LatLng center) {
return mMap.addMarker(
new MarkerOptions().position(center).flat(true).anchor(0.5f, 0.5f).icon(pointb).icon(pointaa).icon(marker));
}
您可以更改标记图标,如下所示
Marker marker = new MarkerOptions().position(center).flat(true).anchor(0.5f, 0.5f);
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker);
// Changing marker icon
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon)));
使用下面的代码
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
return true;
}
});
在这段代码中,只设置了.icon(marker)其他两个图标没有设置我正在使用if-else语句,例如if(clickcount==1){Toast.makeText(getApplicationContext(),“1”,Toast.LENGTH_SHORT).show();marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));结果是标记被覆盖。默认标记显示,自定义标记显示在默认标记的背面,我想更改地图上的每个标记单击此解决方案有效,但唯一的颜色是更改我想更改2或3colors@HassanAliMughal我没明白你的意思,你能理解吗请详细解释到底是什么问题。@MayurRajvir我的观点是:-我使用switch语句来使用标记的颜色地图中有8种标记的颜色,我使用clickcounter,如果我单击9单击地图,默认颜色设置为9标记,并且从不更改10和10+标记颜色意味着8种颜色是更改的,但9或9+颜色不变