这就是我目前使用谷歌地图的方式;
mapFragment = ((SupportMapFragment) getChildFragmentManager()
.findFragmentById(R.id.map)).getMap();
mapFragment.setMyLocationEnabled(true);
mapFragment.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mapFragment.getUiSettings().setMapToolbarEnabled(false);
mapFragment.getUiSettings().setScrollGesturesEnabled(false);
mapFragment.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);它产生一个全屏地图,由于某种原因,它被完全放大到海洋中,所以地图只是一个大的,蓝色的像素,直到你继续放大。
我想做的是:
我在网上看过,尝试过一些事情,但没有任何运气。如果有人能带我通过这个或给我一个链接到一个很好的指南,这将是非常感谢!
发布于 2015-07-21 21:19:01
为了实现你想要的,你应该:
1)获取用户的位置,您可以使用最后一个已知的位置,这样您的主要活动就不会挂起,等待GPS返回一个位置。
LocationManager locationManager = (LocationManager)getSystemService
(Context.LOCATION_SERVICE);
Location getLastLocation = locationManager.getLastKnownLocation
(LocationManager.PASSIVE_PROVIDER);2)将缩放级别设置为1,这是最小的缩放级别,即2D globe;您也可以使用用户位置对地图进行居中。
googleMap.moveCamera(CameraUpdateFactory.zoomTo(1));3)用缩放级别20 (最大变焦级别)动画化摄像机,将其放大到用户位置。需要注意的一点是,您可能希望等到加载了2D globe映射,这样用户才能看到缩放的发生。
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
public void onMapLoaded() {
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder()
.target(new LatLng(userLocation.getLatitude(), userLocation.getLongitude()))
.zoom(20)
.build()));
}
});我试过了,这对我来说很好。如果不清楚,请告诉我,希望能有所帮助。

https://stackoverflow.com/questions/31508444
复制相似问题