Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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_Google Maps - Fatal编程技术网

Android 谷歌地图相机在多个标记上的位置

Android 谷歌地图相机在多个标记上的位置,android,google-maps,Android,Google Maps,我正在使用谷歌地图API 2,并在上面显示多个标记。我的问题是,我希望我的相机定位在我所有的标记上。 我已经做了一个标记为 myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MyLocation, 22)); 我使用下面的方法查看视图中的所有标记。它将绑定地图视图,包括arraylist中的所有横向位置 // Pan to see all markers in view. // Cannot zoom to bounds until t

我正在使用谷歌地图API 2,并在上面显示多个标记。我的问题是,我希望我的相机定位在我所有的标记上。 我已经做了一个标记为

 myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MyLocation, 22));

我使用下面的方法查看视图中的所有标记。它将绑定地图视图,包括arraylist中的所有横向位置

 // Pan to see all markers in view.
 // Cannot zoom to bounds until the map has a size.
    final View mapView = getSupportFragmentManager().findFragmentById(R.id.map).getView();
    if (mapView.getViewTreeObserver().isAlive()) {
        mapView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @SuppressLint("NewApi")
            @Override
            public void onGlobalLayout() {
                LatLngBounds.Builder bld = new LatLngBounds.Builder();
    for (int i = 0; i < YOUR_ARRAYLIST.size(); i++) {           
            LatLng ll = new LatLng(YOUR_ARRAYLIST.get(i).getPos().getLat(), YOUR_ARRAYLIST.get(i).getPos().getLon());
            bld.include(ll);            
    }
    LatLngBounds bounds = bld.build();          
    mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 70));
                mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);

            }
        });
    }
//平移以查看视图中的所有标记。
//在贴图具有大小之前,无法缩放到边界。
最终视图mapView=getSupportFragmentManager().findFragmentById(R.id.map).getView();
如果(mapView.getViewTreeObserver().isAlive()){
mapView.getViewTreeObserver().addOnGlobalLayoutListener(新OnGlobalLayoutListener()){
@SuppressLint(“新API”)
@凌驾
公共图书馆{
LatLngBounds.Builder bld=新的LatLngBounds.Builder();
对于(inti=0;i

希望这会有帮助。

工作起来很有魅力。ThanksRemoveGlobalOnlyOutliner不推荐使用,请改用removeOnGlobalLayoutListener。