2016-10-06 63 views
0

我正在使用以下代碼向Google地圖添加標記並創建邊界。
我所試圖做的就是添加標記和縮放的方式,所有的人都在地圖上都可見已經固定高度將多個標記添加到Google地圖並縮放以包含所有這些標記

LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
for(Location loc: locations) { 
    MarkerOptions marker = new MarkerOptions().position(loc.lat, loc.lon); 
    googleMap.addMarker(marker); 
    builder.include(marker.getPosition()); 
}  

LatLngBounds bounds = builder.build(); 
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 5); 
googleMap.animateCamera(cameraUpdate); 

是否所有的圖標會出現與否取決於我的附加價值填充。
如果我增加的值都顯示出來。否則其他人被隱藏。
如何考慮到我的谷歌地圖有一個固定的設置寬度來填充正確的填充值?

回答

0

嘗試設置您希望啓動地圖(設定您的任何標誌的緯度和經度COOR)的位置的中心,並設置縮放水平:

LatLng center = centro = new LatLng(lat, long); 

CameraPosition cameraPosition = new CameraPosition.Builder().target(center).zoom(17).bearing(0).tilt(0).build(); 
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
+0

這不起作用。在邊界中心(我認爲)但沒有任何標記是可見的 – Jim

0

的所有代碼首先是正確的,它可能取決於你的具體細節如何在地圖上顯示你的標記。如果你看這sample代碼,開發人員提供了一個不同的填充值。

/*initialize the padding for map boundary/ 
int padding = 50; 
/*create the bounds from latlngBuilder to set into map camera/ 
LatLngBounds bounds = builder.build(); 
/*create the camera with bounds and padding to set into map/ 
cu = CameraUpdateFactory.newLatLngBounds(bounds, padding); 
/*call the map call back to know map is loaded or not/ 
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { 
@Override 
public void onMapLoaded() { 
/*set animated zoom camera into map/ 
map.animateCamera(cu); 

} 
}); 
} 

下面是提供使用的解決方案和自己的實現newLatLngBounds一些鏈接:

希望我噸幫助!