установите уровень масштабирования по умолчанию в MapView

#android

#Android

Вопрос:

я создал контроллер масштабирования панели поиска для моего просмотра карты следующим образом

 myZoomBar = (SeekBar)findViewById(R.id.zoombar);
        SetZoomLevel();
        myZoomBar.setOnSeekBarChangeListener(myZoomBarOnSeekBarChangeListener);
  

и

 private SeekBar.OnSeekBarChangeListener myZoomBarOnSeekBarChangeListener =
           new SeekBar.OnSeekBarChangeListener(){

            public void onProgressChanged(SeekBar seekBar, int progress,
              boolean fromUser) {
             // TODO Auto-generated method stub
             SetZoomLevel();
            }

            public void onStartTrackingTouch(SeekBar seekBar) {
             // TODO Auto-generated method stub

            }

            public void onStopTrackingTouch(SeekBar seekBar) {
             // TODO Auto-generated method stub

            }
         };

         private void SetZoomLevel()
         {
          int myZoomLevel = myZoomBar.getProgress() 1;
          mc.setZoom(myZoomLevel);
          Toast.makeText(this,
           "Zoom Level : "   String.valueOf(myZoomLevel),
           Toast.LENGTH_LONG).show();
         };
  

мой вопрос в том, как я могу установить уровень просмотра по умолчанию на 15? Как и сейчас, при открытии карты она полностью уменьшена.

Комментарии:

1. вы спрашиваете, как установить масштаб на 15 уровень при первоначальном отображении карты

2. да, поэтому, когда вы открываете карту, масштаб устанавливается на 15, и при необходимости оттуда можно перемещать ползунок.

Ответ №1:

попробуйте приведенный ниже код

 MaView mapView = (MapView)findViewById(R.id.my_map);
MapController mapController = mapView.getController();
mapController.setZoom(15);  
  

Комментарии:

1. вы уверены, что ваш mapcontroller извлекается из Mapview

2. если я сделаю это p = new GeoPoint((int) (latitude * 1000000), (int) (longitude * 1000000)); mc = mapView.getController(); mc.setCenter(p); myZoomBar = (SeekBar)findViewById(R.id.zoombar); SetZoomLevel(); myZoomBar.setOnSeekBarChangeListener(myZoomBarOnSeekBarChangeListener); mc.setZoom(15); , для просмотра будет установлено значение 15, но на панели поиска по-прежнему отображается 0. есть ли способ установить его также на 15?

3. в чем ваша проблема с масштабированием mapview или позиции seekbar, если это возможно позже, опубликуйте свой xml для seekbar

4. Спасибо за подсказку, добавленную android:progress="15" в XML, и все работает так, как мне нужно.

Ответ №2:

Используйте метод setZoom () класса MapController в вашем MapActivity.

Комментарии:

1. если я добавлю mc.setZoom(15); , это ничего не сделает