如何为google map api v2设置默认位置和缩放级别?

don*_*221 85 android google-maps google-maps-api-3

当我的地图显示时,它总是从固定的位置(非洲附近)开始.

然后,我使用以下代码将地图居中到我想要的位置.

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以在地图显示之前设置默认位置和缩放级别吗?

因为我不希望我的用户在开始时看到动画.

谢谢.

小智 168

你可以使用它来直接缩放而不需要动画:

map.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(xxxx,xxxx) , 14.0f) );
Run Code Online (Sandbox Code Playgroud)


Ant*_*ony 83

看一下这里的文档:

https://developers.google.com/maps/documentation/android-api/map#configure_initial_state

根据您是通过XML添加地图还是以编程方式添加地图,这样做的方式略有不同.如果您使用的是XML,则可以按如下方式执行:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.SupportMapFragment"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"/>
Run Code Online (Sandbox Code Playgroud)

如果以编程方式执行此操作,则可以执行以下操作:

CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(new LatLng(-33, 150))
    .zoom(13)
    .build();
MapFragment.newInstance(new GoogleMapOptions()
    .camera(camera));
Run Code Online (Sandbox Code Playgroud)

  • 在xml中我得到lint错误`为标记片段`找到了意外的名称空间前缀"map" (2认同)

Jay*_*ala 5

如果你想以编程方式加载Google Map任何初始,Location那么你可以使用这段代码,

FragmentManager fm = getFragmentManager(); // getChildFragmentManager inside fragments.
CameraPosition cp = new CameraPosition.Builder()
                    .target(initialLatLng) // your initial co-ordinates here. like, LatLng initialLatLng
                    .zoom(zoom_level)
                    .build();
SupportMapFragment mapFragment = SupportMapFragment.newInstance(new GoogleMapOptions().camera(cp));
fm.beginTransaction().replace(R.id.rl_map, mapFragment).commit();
Run Code Online (Sandbox Code Playgroud)

添加这段代码 layout

<RelativeLayout
       android:id="@+id/rl_map"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

这将直接加载GoogleMap,Location即initialLatLng.