Подтвердить что ты не робот

Как получить диапазон широты/долготы в Google Map V2 для Android

У меня есть задача переместить мое приложение в Google Maps Android API V2. Теперь мне нужно получить диапазон широты/долготы. Я использовал MapView.getLatitudeSpan() и MapView.getLongitudeSpan() в предыдущих версиях API. Теперь я не могу найти что-то подобное в V2.

Есть ли у кого-то такая же проблема?

4b9b3361

Ответ 1

Вы можете использовать следующий код для получения диапазона lat/lng:

VisibleRegion vr = mMap.getProjection().getVisibleRegion();
double left = vr.latLngBounds.southwest.longitude;
double top = vr.latLngBounds.northeast.latitude;
double right = vr.latLngBounds.northeast.longitude;
double bottom = vr.latLngBounds.southwest.latitude;

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

Ответ 2

Сначала получите проекцию, используя GoogleMap.getProjection(). Затем вы можете вызвать Projection.getVisibleRegion(), чтобы получить VisibleRegion, который имеет LatLngBounds.

Причина, по которой диапазон LatitudeSpan и Longitude больше не имеет смысла, состоит в том, что теперь карту можно поворачивать и наклонять, и поэтому окно просмотра больше не является прямоугольником с широтой/долготой на карте.

Ответ 3

Этот способ работает для меня:

CameraPosition camPos2 = mapa.getCameraPosition();
LatLng pos = camPos2.target;
Toast.makeText(MainActivity.this,"Lat: " + pos.latitude + " - Lng: " +pos.longitude,  Toast.LENGTH_LONG).show();

Забастовкa >


Упс, я неправильно понял вопрос, я имею в виду, что я не видел слово "span". В соответствии с API правильным будет:

Сначала получите оценки:

LatLngBounds bounds = gMap.getProjection().getVisibleRegion().latLngBounds;

И затем спросите, находится ли какая-либо точка в границах:

LatLng point = new LatLng (latitude, longitude);
if(bounds.contains(point)){
    //do something
}

Ответ 4

Вот ответ

LatLngBounds bounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
if (bounds.contains(ROMA)) {
   marker = googleMap.addMarker(
     new MarkerOptions()
      .position(ROMA)
      .title("Hello")
      .snippet("Nice Place")
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))
     );     
   System.out.println("Marker added");
}

Добавить маркер только тогда, когда он попадает в видимую область