显示标记Android Google Maps api

时间:2016-10-07 16:13:32

标签: android google-maps android-fragments maps google-maps-markers

我是谷歌地图Android API的新手。我知道这个问题已经发布但是他们已经过时了,我指的是新的API版本。 我正在开发一个导航抽屉,其中一个片段专用于地图。 我只能看到地图,但没有标记,没有缩放。听起来像地图不会被正确加载。

public class MapsFragment extends Fragment实现OnMapReadyCallback {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_maps, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    MapFragment mapFragment =  (MapFragment) getChildFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(44.797283, 20.460663);
    googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

这是名为fragment_maps.xml的xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.app.myapp.view.MapsFragment">

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

谢谢

1 个答案:

答案 0 :(得分:0)

请不要从样品中取出快捷方式。保存GoogleMap对象,然后使用已保存对象的属性和方法。

   @Override
        public void onMapReady(GoogleMap googleMap) {
            mMap = googleMap;

            // Add a marker in Sydney, Australia, and move the camera.
            LatLng sydney = new LatLng(-34, 151);
            mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
            mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
        }