Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:谷歌地图的缩放和定位算法_Android_Algorithm_Google Maps_Google Maps Api 3 - Fatal编程技术网

Android 安卓:谷歌地图的缩放和定位算法

Android 安卓:谷歌地图的缩放和定位算法,android,algorithm,google-maps,google-maps-api-3,Android,Algorithm,Google Maps,Google Maps Api 3,我有一个数组列表,每个数组都是我地图上的一个标记 列表可以有0到1到n个点。他们之间可能有距离,也可能没有距离 有人能帮助我,给定地图区域的高度(“h”dp)和宽度(“w”dp),确定: 这个集合的“中心” 此集合的适当缩放级别(z),以便所有标记在大小为“h”乘以“w”的帧内可见,但(z+1)缩放级别不会显示所有点 要查找一组板条点的中心,请执行以下操作: LatLngBounds.Builder builder = new LatLngBounds.Builder(); for (LatLn

我有一个数组列表,每个数组都是我地图上的一个标记 列表可以有0到1到n个点。他们之间可能有距离,也可能没有距离

有人能帮助我,给定地图区域的高度(“h”dp)和宽度(“w”dp),确定:

  • 这个集合的“中心”
  • 此集合的适当缩放级别(z),以便所有标记在大小为“h”乘以“w”的帧内可见,但(z+1)缩放级别不会显示所有点

  • 要查找一组板条点的中心,请执行以下操作:

    LatLngBounds.Builder builder = new LatLngBounds.Builder();
    for (LatLng point: pointSet) {
       builder.include( point);
    }
    LatLngBounds bounds = builder.build();
    LatLng centerPoint = bounds.getCenter();
    

    至于缩放,最简单的方法是调用map.animate:

    mapObj.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, PADDING_VALUE));
    
    这保证将贴图设置为包含边界输入(加上填充)的最大缩放级别


    如果您仍有兴趣了解所需的缩放级别:

    float zoomLevel = mapObj.getCameraPosition().zoom; // call after(!) animateTo
    
    检查这个答案