2013-02-07 110 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));