我在com.google.android.gms.maps.GoogleMap中使用SherlockFragmentActivity

XML代码是这样的:

            <fragment
                android:id="@+id/map"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:layout_width="fill_parent"
                android:layout_height="150dip" />
int zoomLevel =?//如何计算两个不同的latlong值的缩放级别
由于android map v3需要将缩放级别指示为int
map.setZoom(zoomLevel);

我有起始值和目标值作为com.google.android.gms.maps.model.LatLng
LatLng开始,结束;

我正在添加像GoogleLocation.addPolyLineOnGMap(mMap, startPoint, endPoint, startMarker, endMarker)的pligon

我的问题是如何计算Google map 的缩放级别,以便它可以在 map 上正确显示两个标记。

最佳答案

使用LatLngBounds.Builder在其中添加所有边界并进行构建,然后创建CameraUpdate对象,并在其中使用padding将边界传递给updatefactory。使用此CameraUpdate对象为 map 相机设置动画。

LatLngBounds.Builder builder = new LatLngBounds.Builder();
        for (Marker m : markers) {
            builder.include(m.getPosition());
        }
        LatLngBounds bounds = builder.build();
        int padding = ((width * 10) / 100); // offset from edges of the map
                                            // in pixels
        CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds,
                padding);
        mMap.animateCamera(cu);

关于android - 为两个LatLong值计算Google Map的缩放级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18662852/

10-10 09:55