我在Google地图上放置了两个标记。一个在美国,另一个在亚洲。 Google只提供缩放级别1,2,3,4,5,6等
我不想硬编码缩放级别。如何根据距离显示所有标记?即如果两个项目彼此非常接近或在同一个城市,则应使用近似缩放级别,如果它们相距很远,则应使用最大缩放级别。
答案 0 :(得分:1)
您需要将这些标记包含在边界框中,然后使用下面的LatLngBounds对象在其上设置相机:
private void addMarkers() {
MarkerOptions markerOptions = new MarkerOptions();
LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder();
//add the marker locations that you'd like to display on the map
boundsBuilder.include(new LatLng(lat1, lng1));
boundsBuilder.include(new LatLng(lat2, lng2));
final LatLngBounds bounds = boundsBuilder.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, width, height, padding);
map.animateCamera(cameraUpdate);
}
答案 1 :(得分:1)
您可以指定位置和缩放级别的缩放级别
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(37,
-121), 6));
https://developers.google.com/maps/documentation/android-api/views
答案 2 :(得分:0)
您用什么来制作地图?我从大约8个月前开始在我的一个项目中使用GMap2 API,看起来我只需要调用'GDirections(map {{div}});' on,以及map div,以使其显示两个位置之间的路线,并适当调整缩放级别。