2015-04-11 3 views
0

Я хочу знать, когда все, что загружается в мой фрагмент googlemap, загрузило все. Это то, что мой код в настоящее время выглядит какКак настроить OnMapLoadedCallback GoogleMaps

public class MainMapActivity extends FragmentActivity implements OnMapReadyCallback, GoogleMap.OnMapLoadedCallback { 

GoogleMap map; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_map); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 


    MapFragment mapFragment = (MapFragment) getFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
    //addLatestLocations(); 

    // TestVectorQuery(); 
} 

@Override 
public void onMapReady(GoogleMap map) { 
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(
      new LatLng(32.0516, -78.925), 3)); 
    map.setOnMapLoadedCallback(this); 
} 

@Override 
public void onMapLoaded() { 
    //SetMapMarker(26.1333, 80.1500); 
    //Whatever I want to do 

} 

<fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map" 
    class="com.google.android.gms.maps.MapFragment" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

Там, кажется, не будет ничего плохого в этом; однако, когда я пытаюсь сделать что-то внутри onMapLoaded(), ничего не происходит, поэтому кажется, что обратный вызов неправильно установлен. Любая помощь будет оценена по достоинству. Спасибо.

ответ

0

Вы используете собственный фрагмент (com.google.android.gms.maps.MapFragment) и getFragmentManager() в FragmentActivity. Это не работает. Либо измените фрагмент на SupportMapFragment и используйте getSupportFragmentManager(), либо измените свою активность, чтобы наследовать от Activity.

+0

A + спасибо, что он сработал отлично. –

0

попробуйте использовать фрагмент поддержки, потому что он работает для меня. ниже мой код работает успешно.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_view_map); 

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) 
      .getMap(); 

    map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { 
     @Override 
     public void onMapLoaded() { 
      map.addMarker(new MarkerOptions() 
        .title("your title") 
        .snippet("your desc") 
        .position(new LatLng(-22.2323,-2.32323)) 
      ); 
     } 
    }); 
} 
Смежные вопросы