如何放大谷歌地图位置?

时间:2015-09-11 21:49:25

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

当我打开应用程序时,它会显示整个世界,我必须继续放大以正确查看地点。如何让相机放大约11倍,就像我要保持双击一样?

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

    }

    @Override
    public void onMapReady(GoogleMap map) {
        map.addMarker(new MarkerOptions()
                .position(new LatLng( 10.625176, -61.354915))
                .title("Tru-Valu, Trincity Mall"));
    }

3 个答案:

答案 0 :(得分:1)

GoogleMap已经"移动"和#34;动画"定位和缩放的方法。

您可以使用CameraUpdate获取CameraUpdateFactory个对象。以下是一些例子。

  • CameraUpdateFactory.newLatLng(LatLng latLng)
  

返回将屏幕中心移动到的CameraUpdate   LatLng对象指定的纬度和经度。这是中心   LatLng对象上的摄像头。

  • CameraUpdateFactory.newLatLngZoom(LatLng latLng, float zoom)
  

返回将屏幕中心移动到的CameraUpdate   由LatLng对象指定的纬度和经度,并移动到   给定缩放级别。

  • CameraUpdateFactory.zoomBy(float amount)
  

返回一个CameraUpdate,用于移动当前的缩放级别   相机观点。

您可以在CameraUpdateFactory documenation中找到其他辅助方法。此外,这里有关于移动GoogleMap相机的documentation from Google Developers非常有用。

因此,如果您想放大Tru-Valu, Trincity Mall位置,这就是您的代码应该是这样的

googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
        new LatLng(10.625176, -61.354915), 16f));

答案 1 :(得分:0)

试试这个:

LatLng coordinate = new LatLng(lat, lng);
CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 5);
map.animateCamera(yourLocation);

答案 2 :(得分:0)

与Milad Nouri的回答类似,最初用户可能没有位置,而FusedLocationProvider还没有最后一个位置,因为API客户端尚未启动。所以,我的诀窍是保存用户'最后一次纬度和经度保存参考并将此位置加载为应用启动时初始相机动画的LatLng。

我在最后更新时保存了LatLng,因此它只会记住为地图上用户所在位置更新的最后一个纬度和经度。