2016-10-07 13 views
0

Я пытаюсь установить мой OnMapReadyCallback как получить аргумент Async карты. Но андроид говорит мне, что для этого нужен объект GoogleMap, в документации onMapReady() недействителен. Код нижеНесовместимый тип функции onMapReady()

private void initilizeMap() { 
    if (googleMap == null) { 
     googleMap = ((MapFragment) getFragmentManager().findFragmentById(
       R.id.map)).getMapAsync(this); 

     // check if map is created successfully or not 
     if (googleMap == null) { 
      Toast.makeText(getApplicationContext(), 
        "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
} 

@Override 
public void onMapReady(GoogleMap map) { 
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
    map.setTrafficEnabled(true); 
    map.setIndoorEnabled(true); 
    map.setBuildingsEnabled(true); 
    map.getUiSettings().setZoomControlsEnabled(true); 
} 

ответ

1

getMapAsync не возвращает GoogleMap объект (documentation). Вы можете инициализировать googleMap объект так:

private void initilizeMap() { 
    ((MapFragment) getFragmentManager().findFragmentById(
      R.id.map)).getMapAsync(this); 
} 

@Override 
public void onMapReady(GoogleMap map) { 
    googleMap = map; 
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
    map.setTrafficEnabled(true); 
    map.setIndoorEnabled(true); 
    map.setBuildingsEnabled(true); 
    map.getUiSettings().setZoomControlsEnabled(true); 
} 
+0

ясно ответ, но ОП не знаю, что он хочет, но, чтобы получить ссылку на карту и вызовите функцию асинхронной тоже так все немного больше информации о том, что бы повысить свой пост тоже чувак +1 –

+0

спасибо, я «Обратите внимание на это –

0

вы можете попробовать этот код.

private void initilizeMap() { 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
    // check if map is created successfully or not 
    if (googleMap == null) { 
     Toast.makeText(getApplicationContext(), 
       "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
       .show(); 
    } 
} 

@Override 
public void onMapReady(GoogleMap map) { 
    googleMap = map; 
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
    map.setTrafficEnabled(true); 
    map.setIndoorEnabled(true); 
    map.setBuildingsEnabled(true); 
    map.getUiSettings().setZoomControlsEnabled(true); 
} 
+0

объяснение было бы полезно для OP dude –

Смежные вопросы