我想知道我加载到googlemap片段的所有内容何时加载了所有内容。这就是我的代码目前的样子
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 :(得分:0)
您在com.google.android.gms.maps.MapFragment
中使用原生片段(getFragmentManager()
)和FragmentActivity
。这不起作用。将片段更改为SupportMapFragment
并使用getSupportFragmentManager()
,或将您的活动更改为从Activity
继承。
答案 1 :(得分: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))
);
}
});
}