0

这是我的代码片段。

//position on Center

CameraPosition cameraPosition = new CameraPosition.Builder().target(
       new LatLng(14.635356, 121.03272914)).zoom(15).build();

map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

//within bounds
map.moveCamera(CameraUpdateFactory.newLatLngZoom(QC.getCenter(), 12));

在第一条评论上,显示了我设置的界限。但是,如果我单击按钮以显示我当前的位置,则地图不会放大到我的位置(这就是它应该做的)并且只会保持缩放级别。

但是,如果我这样做

//within bounds
map.moveCamera(CameraUpdateFactory.newLatLngZoom(QC.getCenter(), 12));

//position on Center

CameraPosition cameraPosition = new CameraPosition.Builder().target(
       new LatLng(14.635356, 121.03272914)).zoom(15).build();

map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

相机动画到我当前的位置和缩放级别,但我设置的边界不显示。

我想知道是否可以在开始时显示我设置的范围和缩放级别,然后放大到我的位置并放大。提前致谢!

4

2 回答 2

1

Try LatLngBounds

Eg:- suppose I have a GoogleMap mMap; Then,

LatLng northeast=new LatLng(14.635356, 121.03272914);
LatLng southwest=new LatLng(15.635356, 120.03272914);// give values as your need
LatLngBounds mbounds=new LatLngBounds(southwest, northeast);
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(mbounds, 3));// Here 2nd parameter '3' is padding.

This will automatically zoom to include bounds.

于 2013-10-03T05:23:58.890 回答
1

试试这个代码来设置界限。设置这些边界后,设置您在地图中的位置。

LatLngBounds boundsLatLng = new LatLngBounds.Builder()
    .include(new LatLng(Double.parseDouble(bounds.get(0).get("lat")),Double.parseDouble(bounds.get(0).get("lng") )))
    .include(new LatLng(Double.parseDouble(bounds.get(1).get("lat")),Double.parseDouble(bounds.get(1).get("lng") )))
    .build();

    map.animateCamera(CameraUpdateFactory.newLatLngBounds(boundsLatLng,50));

以这种方式设置边界变量

List<HashMap<String,String>> bounds = new ArrayList<HashMap<String,String>>();

        HashMap<String, String> p = new HashMap<String, String>();
    p.put("lat", "29.373");p.put("lng", "23");
    HashMap<String, String> p1 = new HashMap<String, String>();
    p1.put("lat", "39.373");p1.put("lng", "43");
    bounds.add(p);bounds.add(p1);
于 2013-10-03T05:19:13.650 回答