Настройка видимой области на Картах Google [дубликат]

С индексированным массивом вы можете сделать что-то вроде этого:

declare -a a=()
a+=('foo' 'bar')
0
задан Suheyb 13 July 2015 в 10:31
поделиться

1 ответ

Это не так просто и хорошо, как ваша ссылка, но это то, что может работать:

//When you setup the map:
 map.setOnCameraChangeListener(new OnCameraChangeListener() {
     @Override
     public void onCameraChange(CameraPosition cameraPosition) {
         checkBounds();
     }
 });

И функция CheckBounds может проверить, находится ли видимая область внутри разрешенного:

public void checkBounds() {
  //non ricostruire allowedbounds ogni volta, sono sempre gli stessi, fatti il build nell'onCreate
  LatLngBounds actualVisibleBounds = map.getProjection().getVisibleRegion().latLngBounds;
  if (allowedBounds.contains(actualVisibleBounds)){
    return
  }else{
    map.animateCamera(CameraUpdateFactory.newLatLngBounds(allowedBounds));
  }
}

Или вы можете использовать центр окна просмотра и проверить, находится ли внутри разрешенной области (чтобы разрешить масштабирование)

public void checkBounds() {
                LatLngBounds.Builder builder = new LatLngBounds.Builder();
                builder.include(northeast);
                builder.include(southwest);
                final LatLngBounds allowedBounds = builder.build();

                LatLngBounds centro = map.getProjection().getVisibleRegion().latLngBounds;

                if (allowedBounds.contains(centro.getCenter()))
                        return;
                else {
                        map.animateCamera(CameraUpdateFactory.newLatLngZoom(defaultLatLng, zoomLevel));
                }                
        }
1
ответ дан N Dorigatti 21 August 2018 в 10:05
поделиться
  • 1
    Это действительно работает? потому что onCameraChange() будет называться после прокрутки карты ! – Muhammad Babar 2 February 2016 в 08:26
  • 2
    Да, это поведение API Google, у вас не может быть ничего лучше, чем до тех пор, пока api не останется таковым! – N Dorigatti 2 February 2016 в 09:13
Другие вопросы по тегам:

Похожие вопросы: