Ich habe ein paar anklickbare Polygone als ArrayList. Gibt es eine Möglichkeit, Polygone zu rendern, die sich innerhalb der Ansichtsgrenzen befinden, d. H. Nur in der Zoomstufe sichtbar? Anstatt sie alle zu rendern.Rendering nur Polygone innerhalb der Ansicht Grenzen: Google Maps Android
0
A
Antwort
1
können Sie Polygone mit visibile aus der Karte hinzufügen und sie sichtbar machen nach Änderungen der Google Map Kamera.
Polygon polygon = map.addPolygon(new PolygonOptions()
.add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
.strokeColor(Color.RED)
.fillColor(Color.BLUE)
.visibility(false);
Hinzufügen eines Kamera-Change-Listeners zur GoogleMap-Instanz.
Sie können zusätzliche Fälle implementieren, wenn Sie mehr Daten neben der Zoomstufe benötigen. Hoffe, es half :)
EDIT
Um die Handhabung vieler poligons zu verbessern, können Sie alle Ihre Polygone in Arraylist und nach der Kamerawechsel setzen könnte, untersuchen, welches Polygon angezeigt werden soll:
List<Polygon> polygons = new ArrayList<>();
polygons.add(map.addPolygon(new PolygonOptions()
.add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
.strokeColor(Color.RED)
.fillColor(Color.BLUE)
.visibility(false)); //Repeat for as many as you have
in Kamerawechsel Hörer:
if (cameraPosition.zoom > 12) { // Your required zoom level to show polygons
LatLngBounds latLngBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
for (Polygon polygon : polygons) {
for (LatLng latLng : polygon.getPoints()) {
if (latLngBounds.contains(latLng)) {
polygon.setVisible(true);
break; //Needed if only one polygon can be visible at a time, remove if several can be visible at a time
}
}
}
}
HINWEIS ich denke, das sollte funktionieren, aber ich habe nicht Testen Sie dies, hoffe es hat geholfen :)
Verwandte Themen
- 1. getpaths() Polygone Google Maps api
- 2. Google Maps Polygone verlangsamen den Browser
- 3. Google Maps-API-Grenzen Fehler
- 4. Google Maps V3: Zeichne deutsche Zustands-Polygone?
- 5. Google Maps Overlay Rendering Ausgabe
- 6. Google Maps inkorrekt GeoJSON rendering
- 7. React-google-maps re-rendering Problem
- 8. Android Google Maps Transparenz
- 9. Ermitteln der Grenzen einer Polyine in Google Maps API v3
- 10. Bing Maps migriert keine Polygone
- 11. Verwenden Sie Google My Maps Polygone in meiner API
- 12. Google Maps API v3 Länderrahmen markieren ohne Polygone zu verwenden
- 13. schneidende Polygone und Polylinien, mit Google Maps API v3
- 14. Google Maps-Grenzen mit eckigen-google-Karten setzen
- 15. Android Google Maps Autorisierungsfehler
- 16. Ziehen von unten Ansicht wie Google Maps
- 17. Android Studio Google Maps
- 18. Android Google Maps ClassNotFoundException
- 19. Android - Google Maps Implementierung
- 20. Google Maps mit Android?
- 21. Google Maps: Neudefinition Mittelpunkt, fit Grenzen zu bestimmtem Bereich
- 22. Google Maps Höhe nur 30px
- 23. Verbessern von DrawingContext Performance Rendering Geometrie (Polygone und Polylinien)
- 24. Android: Google Maps deaktivieren Overlays
- 25. Wie nur innerhalb der Grenzen des ursprünglichen SVG erlaubt pan
- 26. Google Maps-Grenzen (Beschränkung von Standortdaten auf eine Breiten-/Längengrenze)
- 27. Google Maps Autocomplete innerhalb einer Stadt
- 28. Thema Google Maps für Android
- 29. Android Google Maps v2 Kameraanimation
- 30. Android Google maps api vs JavaScript Google maps api
Dies ist hilfreich. Aber scheint mehr 'hardcoded' für 100s Polygone. Gibt es eine Alternative, die du kennst? – raincrash
Aktualisiert meine Antwort, Happy Coding :) –
Haben Sie überprüft, ob es einen Unterschied in Bezug auf die Leistung macht, um die Anzahl der Polygone zu den sichtbaren zu reduzieren? Ich würde annehmen, dass die Karten-API auch eine Optimierung hat, die es vermeidet, Zeit damit zu verbringen, unsichtbare Polygone zu "zeichnen". Oder aus welchen Gründen möchten Sie die Anzahl der Polygone reduzieren? – user2808624