2017-02-14 15 views
0

Я пытаюсь рисовать сетки на карте только тогда, когда уровень масштабирования равен 18. Я создал сетки с кодом ниже. Но у меня есть одна проблема, когда я перемещаю карты, сетки создаются новыми, а ее позиция изменяется. Вы можете видеть, что на скриншоте в правильном изображении я вытер карту налево, а линии сетки не одинаковы. Я хочу, чтобы решены решетки. Код размещен ниже изображений. Я звоню под кодом из onCameraChange прослушивания GoogleMap. enter image description hereAndroid Google Map v2 рисовать статические сетки

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

код удален его конфиденциальным.

функция drawPolyline рисовать ОДНОЛИНЕЙНУЮ

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); 
    } 

ответ

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

То есть не квадрат изменения размера его.

double squareSize = 1.0d; 

Тогда он будет работать нормально, но размер сетки будет 3 метра, как в what3words. Чтобы сделать это 15-ти метров, что близко к 50 футов разделить 1546.0d и 37104.0d с 5.

37104.0d равно 1546.0d * 24.

Лучше извлечь все эти значения в переменную и использовать их как.

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

Надеюсь, это вам поможет.