当我开始这项工作时,我认为这是一个相当微不足道的功能,但我一直在努力实现这一点:
我找不到任何选项来隐藏(将可见性设置为false)标记。因此,我将其删除,然后再次添加:
private void hideMarkers() {
if (!markersHidden) {
mapBoxMap.clear();
markersHidden = true;
}
}
private void showMarkers() {
if (markersHidden) {
markersHidden = false;
for (Point point : markerMap.values()) {
addMapMarker(point);
}
}
}
public void addMapMarker(Point point) {
if (point == null) return;
markerMap.put(point.id, point);
if (markersHidden) return;
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(point.location.latitude, point.location.longitude))
.setSnippet(point.id)
.icon(IconUtils.drawableToIcon(getContext(), presenter.getMapIcon(point.provider).getMapIcon(point)))
.title(point.name);
mapBoxMap.addMarker(markerOptions);
}
markerMap
是一个哈希映射,我在其中保存点引用。
markerMap公司
保留引用,并将其正确添加到地图中。
为什么当他们被添加到地图上时,他们没有出现在地图上?
我该怎么做才能再次显示标记?
除了删除和添加标记外,还有其他方法可以实现隐藏和显示标记吗?
com.mapbox.mapboxsdk:mapbox-android-sdk:5.0.2@aar
.