2013-02-07 73 views
15

如题,在地图V1我可以使用谷歌地图V2如何设置ZoomToSpan?

mapController.zoomToSpan(..., ..., ...); 

包括屏幕上的所有标记。

剂量图V2有相同的方法吗?


2013年2月22日编辑:

第一,得到你想要在屏幕上涉及到所有经纬度点。

假设,如果你有3个经纬度点,使用

LatLngBounds bounds = new LatLngBounds.Builder().include(point1) 
        .include(point2).include(point3).build(); 

mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50)); 
+0

你有没有得到这样一个答案?我也找不到ZoomToSpan等价物。 – LilMoke

+3

移动您的编辑来回答并接受它。有些用户似乎没有得到它,你自己回答。 –

回答

0

我希望这将是使用全给你。

public class GoogleMapActivity extends FragmentActivity { 

private GoogleMap map; 
Bundle extras; 

LatLng latlng; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.google); 

    extras = getIntent().getExtras(); 
    if (extras != null) { 
     unit_long = extras.getString("unit_long"); 
     unit_lat = extras.getString("unit_lat"); 

    } 

    latlng = new LatLng(Double.parseDouble("19.25252"), 
      Double.parseDouble("23.25252525")); 

    map = ((SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map)).getMap(); 

    Marker hamburg = map.addMarker(new MarkerOptions().position(latlng) 
      .title("Location").snippet("I am here") 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))); 

    map.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15)); 

    // Zoom in, animating the camera.use this line in your code 
    map.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null); 
    // map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
    map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 

} 
} 
0
地图

V2

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 
GoogleMap map = ((SupportMapFragment)getSupportFragmentManager() 
              .findFragmentById(R.id.map)).getMap(); 
map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 

    if (map != null) { 
     // Zoom in, animating the camera. 
    map.animateCamera(CameraUpdateFactory.zoomTo(12), 2000, null); 
    } 
} 

可以改变12的值,即负载地图的缩放水平。 玩得开心!

2

尝试这个

map.addMarker(new MarkerOptions().position(latlng)).setVisible(true); 

    // Move the camera instantly to location with a zoom of 15. 
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15)); 

    // Zoom in, animating the camera. 
    map.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null); 
0
谷歌地图V2的

菲尤方法可以做同样的事情:

static CameraUpdate newLatLngBounds(LatLngBounds bounds, int padding) 

返回变换镜头,让指定的纬度/经度的CameraUpdate边界以尽可能最大的缩放级别居中显示在屏幕上。

static CameraUpdate newLatLngBounds(LatLngBounds bounds, int width, int height, int padding) 

返回变换相机,使得指定的纬度/经度范围在最大可能的缩放级别集中于屏幕中指定尺寸的边界框内提供CameraUpdate。

static CameraUpdate newLatLngZoom(LatLng latLng, float zoom) 

返回移动屏幕的中心,以纬度和由经纬度对象指定经度和为给定的缩放级别移动提供CameraUpdate。

这里是使用其中的一个例子:

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(geoPoint, zoom));