【发布时间】:2018-10-19 04:17:14
【问题描述】:
我想在 Google 地图上显示多个标记。我想在圆形区域中将标记显示为数字。如下图:
为了添加多个标记,我已经完成了:
Adding multiple markers in Google Maps API v2 Android
Adding Multiple Markers Google Maps
How to show multiple markers on MapFragment in Google Map API v2?
我已经通过这段代码实现了多个标记:
public class ComplaintsMapActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
private NetworkManager networkManager = null;
private int reqIdComplaintList = -1;
private ArrayList<ComplaintData> complaintList = new ArrayList<>();
private static final int ZOOM_LEVEL = 15;
private static final int TILT_LEVEL = 0;
private static final int BEARING_LEVEL = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_complaints_map);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
networkManager = NetworkManager.getInstance();
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
complaintList = (ArrayList<ComplaintData>)getIntent().getSerializableExtra("list");
for (int i = 0; i < complaintList.size(); i++) {
ComplaintData location = complaintList.get(i);
LatLng position = new LatLng(Double.parseDouble(location.getLat()), Double.parseDouble(location.getLng()));
mMap.addMarker(new MarkerOptions().position(position));
if (i == 0) {
CameraPosition camPos = new CameraPosition(position, ZOOM_LEVEL, TILT_LEVEL, BEARING_LEVEL);
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(camPos));
}
}
}
}
我的结果是:
我知道如何设置自定义标记。但是这个数据是动态的,任何数量的数据都会在那里。所以我想问是否有任何方法可以通过任何循环生成这些数字。因为为每个位置设置标记,我需要数百个标记,这不太可取。那么有什么选择吗?
注意:我不想要集群。我只想在一个标记上显示 1,在第二个标记上显示 2,... 和 100 在一百个标记上等等。
任何帮助将不胜感激。
谢谢你:)
【问题讨论】:
-
但是根据您的第一个图像描述,它肯定意味着聚类!
-
@Sreehari 是的,这就是我澄清我不想要集群的原因。这只是我想要实现的参考图像
标签: android google-maps android-layout android-fragments marker