2013-09-26 56 views
3

攝像頭在我的Android應用程序,我有以下代碼...中心在谷歌地圖V2

CameraUpdate center= CameraUpdateFactory.newLatLng(new LatLng(Lat,Lon)); 
DebugLog.debugLog("centered camera on " + Lat + " and " + Lon, false); 
    CameraUpdate zoom=CameraUpdateFactory.zoomTo(15); 
map.moveCamera(center); 
    map.animateCamera(zoom); 
map.addMarker(new MarkerOptions() 
     .position(new LatLng(Lat, Lon)) 
     .title("Phone Location") 
      ); 

(Lat)爲31.7898 經度爲-111.0354

標記是恰好在正確的位置。然而,相機位於v2地圖上該位置以北約5英里處。 爲什麼? 感謝 加里

+1

嘗試做兩個中心,在一個操作中的變焦,而不是兩個。 – CommonsWare

+0

只是爲了顯示如何做到這一點的例子:\t \t map.animateCamera(CameraUpdateFactory.newLatLngZoom(位置, \t \t \t \t 15)); – cYrixmorten

回答

2

讀了一些額外的文檔後,我發現下面的代碼工作...

CameraPosition cameraPosition = new CameraPosition.Builder() 
     .target(new LatLng(Lat, Lon)) 
     .zoom(15) 
     .bearing(0) 
     .tilt(45) 
     .build(); 
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
    map.addMarker(new MarkerOptions() 
    .position(new LatLng(Lat, Lon)) 
    .title("Phone Location") 
     ); 

我覺得我原來的代碼應該還努力。 加里

2

保持視角相同,但中心相機在當前點擊標記:

obj_map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker arg0) { 
     CameraPosition obj_cam = new CameraPosition.Builder() 
       .target(new LatLng(arg0.getPosition().latitude, arg0.getPosition().longitude)) 
       .zoom(obj_map.getCameraPosition().zoom) 
       .tilt(obj_map.getCameraPosition().tilt) 
       .bearing(obj_map.getCameraPosition().bearing) 
       .build(); 
     obj_map.animateCamera(CameraUpdateFactory.newCameraPosition(obj_cam)); 
     return true; 
    }