2016-04-18 10 views

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 :)

+0

Dies ist hilfreich. Aber scheint mehr 'hardcoded' für 100s Polygone. Gibt es eine Alternative, die du kennst? – raincrash

+0

Aktualisiert meine Antwort, Happy Coding :) –

+0

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

Verwandte Themen