private void addMarker(DelegatingMarker marker) { if (visibleRegionBounds.contains(marker.getPosition())) { marker.changeVisible(true); } else { markers.add(marker); } } }
@Override public void onPositionChange(DelegatingMarker marker) { if (!marker.isVisible()) { return; } if (markers.contains(marker)) { if (visibleRegionBounds.contains(marker.getPosition())) { markers.remove(marker); marker.changeVisible(true); } } }
private boolean showDefaultIcon(final Network network) { final boolean showLabel = prefs.getBoolean( ListFragment.PREF_MAP_LABEL, true ); if (showLabel) { final LatLngBounds bounds = map.getProjection().getVisibleRegion().latLngBounds; // if on screen, and room in labeled networks, we can show the label if (bounds.contains(network.getLatLng()) && MapRender.this.labeledNetworks.size() <= MAX_LABELS) { return false; } } return true; }
private void showMarkersInVisibleRegion() { IProjection projection = map.getProjection(); VisibleRegion visibleRegion = projection.getVisibleRegion(); visibleRegionBounds = visibleRegion.latLngBounds; Iterator<DelegatingMarker> iterator = markers.iterator(); while (iterator.hasNext()) { DelegatingMarker marker = iterator.next(); if (visibleRegionBounds.contains(marker.getPosition())) { marker.changeVisible(true); iterator.remove(); } } }
@Override protected Void doInBackground(LatLngBounds... bounds) { final Collection<Network> nets = MainActivity.getNetworkCache().values(); for (final Network network : nets) { final Marker marker = NetworkRenderer.this.getMarker(network); if (marker != null && network.getLatLng() != null) { final boolean inBounds = bounds[0].contains(network.getLatLng()); if (inBounds || MapRender.this.labeledNetworks.contains(network)) { // MainActivity.info("sendupdate: " + network.getBssid()); sendUpdateNetwork(network.getBssid()); } } } return null; }