我如何访问我的 GoogleMap-Object (android 地图 v2) 上的所有标记并将它们设置为可见?

2024-01-04

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

这就是我的想法:

 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[] 数组中。我怎样才能实现它?

标记 Array.add(marker) 不起作用


我找到了一个答案,该答案也考虑到我的 customerList 有没有坐标的客户 --> (0,0;0,0)。受到启发这个博客。 http://discgolfsoftware.wordpress.com/2012/12/06/hiding-and-showing-on-screen-markers-with-google-maps-android-api-v2/

初始化ArrayList:

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

将标记添加到我的地图和 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!
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何访问我的 GoogleMap-Object (android 地图 v2) 上的所有标记并将它们设置为可见? 的相关文章

随机推荐