2017-02-14 7 views
0

J'essaye de dessiner des grilles sur la carte seulement quand le niveau de zoom est 18. J'ai créé des grilles avec le code ci-dessous avec succès. Mais j'ai un problème quand je bouge les grilles de carte sont créées nouvelles et sa position a changé. Vous pouvez voir que dans la capture d'écran dans la bonne image, j'ai effacé la carte à gauche et les lignes de la grille ne sont pas les mêmes. Je veux dessiner des grilles fixes. Code affiché ci-dessous des images. J'appelle le code ci-dessous de onCameraChange écoutere de GoogleMap. enter image description hereAndroid Google Map v2 dessiner des grilles statiques

double squareSize = 5.0d; //5.0d == 50feet 
final double LONGITUDE_180 = 180.0d; 
final double LATITUDE_90 = 90.0d; 
final double PI = 3.141592653589793d; 

du Code a supprimé son confidentiel.

fonction drawPolyline pour dessiner une seule ligne

private void drawPolyline(LatLng latLng, LatLng latLng2) { 
     PolylineOptions polylineOptions = new PolylineOptions(); 
     polylineOptions.add(latLng, latLng2); 
     polylineOptions.color(Color.argb(50, 0, 0, 100)); 
     polylineOptions.width(3.5f); 
     polylineOptions.visible(true); 
     polylineOptions.geodesic(true); 
     Polyline polyline = googleMap.addPolyline(polylineOptions); 

     this.polylines.add(polyline); 
    } 

Répondre

1
double squareSize = 5.0d; //5.0d == 50feet 

Ce n'est pas le changement de taille à la place.

double squareSize = 1.0d; 

Ensuite, il fonctionnera bien, mais la taille de la grille 3 mètres comme dans what3words. Pour le rendre 15 mètres, ce qui est près de 50 pieds divisent 1546.0d et 37104.0d avec 5.

37104.0d est égal 1546.0d * 24.

Mieux vaut extraire toutes ces valeurs en variable et les utiliser comme.

double var1 = 1546.0d/5; // replace with value 1546.0 
double var2 = var1 * 24; // replace with value 37104.0d 

Espérons que cela vous aidera.