gpt4 book ai didi

android - 我如何访问我的 GoogleMap 对象(android map v2)上的所有标记并将它们设置为(不)可见?

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:07 24 4
gpt4 key购买 nike

我目前正在尝试实现一个 ActionBar 按钮,该按钮在使用时将我在 GoogleMap 对象上的所有标记设置为可见或不可见。我的问题是,一旦创建并显示在我的 map 上,我不知道如何获取对所有标记的引用。我正在寻找一种解决方案,将所有标记对象存储到一个数组中,我也可以在代码的其他部分访问它。这种做法合理吗?

这是我的想法:

 private Marker[] mMarkerArray = null;
for (int i = 0; i < MainActivity.customers.size(); i++) {

LatLng location = new LatLng(mData.lat, mData.lng);

Marker marker = mMap.addMarker(new MarkerOptions().position(location)
.title(mData.title)
.snippet(mData.snippet));
mMarkerArray.add(marker);
}

并在另一种方法中将我所有的标记设置为不可见:

for (int i = 0;  i < mMarkerArray.length;; i++) {
mMarkerArray[i].setVisible(false);
}

它拒绝将标记添加到 Marker[] 数组。我怎样才能实现它?

mMarkerArray.add(marker) 不起作用

最佳答案

我想出了一个答案,它也考虑到我的 customerList 中有没有坐标的客户 --> (0,0;0,0)。灵感来自 this blog.

初始化ArrayList:

private ArrayList<Marker> mMarkerArray = new ArrayList<Marker>();

将标记添加到我的 map 和 mMarkerArray:

for (int i = 0; i < MainActivity.customers.size(); i++) {
Customer customer = MainActivity.customers.get(i);
if (customer.getLon() != 0.0) {
if (!customer.isProspect()) {
Data mData= new Data(customer.getLat(),customer.getLon(),customer.getName(),
customer.getOrt());

LatLng location = new LatLng(mData.lat, mData.lng);

Marker marker = mMap.addMarker(new MarkerOptions().position(location)
.title(mData.title)
.snippet(mData.snippet));

mMarkerArray.add(marker);
}}}

设置所有标记不可见

for (Marker marker : mMarkerArray) {
marker.setVisible(false);
//marker.remove(); <-- works too!
}

关于android - 我如何访问我的 GoogleMap 对象(android map v2)上的所有标记并将它们设置为(不)可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com