java - 单击地图上的更改标记图标
问题描述
您好,我正在制作谷歌地图应用程序,在我的应用程序中添加区域测量功能,在区域测量中,用户单击地图,如果用户指向七个地方,则标记设置在指向区域上,然后设置七个标记在指向的地方,但我在每个点上都更改了标记图标,但图标永远不会改变请帮助我在每次点击时更改标记图标
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));
}
解决方案
使用下面的代码
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
return true;
}
});
推荐阅读
- node.js - Deno:服务器发送事件
- javascript - ESLint - 对象卷曲换行符
- python - XOR 的 Tensorflow 在 500 个 epoch 后无法正确预测
- docker - 如何从不稳定的构建构建 jibri docker 映像?
- sql - 如何对包含多个列名不明确的联接表的 LINQ 查询进行分组?
- mysql - 我想在 mysql 中创建多个具有相同复合主键且没有数据冗余的表。我怎样才能做到这一点?
- php - Magento2 (2.4.1) 在执行 health_check 并使用 redis-server 时刷新缓存时崩溃
- android - 在没有“应用签名”的情况下为 Google Playstore 中的应用设置新的上传密钥
- reactjs - 如何从 next.js getServerSideProps() 中的包装器获取客户端?
- javascript - 需要帮助创建 Javascript 正则表达式