我仍然在学习机器人并且仍在努力解决一些问题..所以请耐心等待! 我有一个用于我的谷歌地图的微调器,它会删除所有标记并根据用户想要看到的内容放置新标记。
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(parent.getContext(),
"You have selected : " + parent.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show();
String selectedItem = parent.getItemAtPosition(position).toString();
if (selectedItem.equals("Landmarks")) {
landMarkMarkers();
} else if (selectedItem.equals("Trees")) {
TreeMarkers();
}
}
landMarkMarkers()和TreeMarkers()检查地图是否为空,否则使用mMap.clear()然后添加新标记。
private void landMarkMarkers() {
float[] distance = new float[2];
if (mMap != null) {
mMap.clear();
} else {
Log.d("Maps: :", "mMap is null");
}
Marker1 = mMap.addMarker(new MarkerOptions()
.position(new LatLng(51.59757, -4.00102))
.title("Entrance 1")
.snippet("Entrance to the park.")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
Marker2= mMap.addMarker(new MarkerOptions()
.position(new LatLng(51.59679, -4.00678))
.title("Entrance 2")
.snippet("Entrance to the park.")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
在onMapReady中我使用longClickListener为人们添加标记,以便他们自己为使用该应用程序找到的地方添加标记。它使用EditActivity,因此可以标记标记。
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
Intent edit = new Intent(MapsActivity.this, EditActivity.class);
edit.putExtra("location", latLng);
MapsActivity.this.startActivityForResult(edit, EDIT_REQUEST);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (EDIT_REQUEST) : {
if (resultCode == Activity.RESULT_OK) {
MarkerOptions markerOptions = data.getParcelableExtra("marker");
mMap.addMarker(markerOptions);
}
break;
}
我的问题是我该怎么做,以便当用户将微调器从树木更改为地标,反之亦然,并打开和关闭应用程序。通过LongClick添加的标记将始终显示在地图上,我相信我需要将标记添加到数组中,但我似乎无法使用我实现它的方式。 感谢有时间的人,请尽量保持简单。我还在学习!
答案 0 :(得分:0)
尝试收集集合中的所有标记,并为每个标记调用Marker.remove()方法,除了通过长按实现的标记。