【问题标题】:Fix zoom level between two Marker in Google-Map修复谷歌地图中两个标记之间的缩放级别
【发布时间】:2015-08-17 06:35:06
【问题描述】:

目前我使用 Google-Map-v2,我想在两个 标记 之间显示方向。一切正常,两个 Markers 之间的方向计算和绘制都很好。但只剩下一个问题。

问题是谷歌地图中这两个标记之间的缩放级别太大。我在 SO 中搜索并通过以下代码找到更改缩放级别的解决方案:

 LatLngBounds.Builder builder = new LatLngBounds.Builder();
    builder.include(origin);
    builder.include(dest);
    LatLngBounds bounds = builder.build();

    CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50);
    mMap.animateCamera(cu);

现在好多了但缩放级别仍然不好。是否可以对 Code 进行一些修复? (如果我可以查看一些填充是固定的)

我也将 50 更改为 6,12,...但没有任何改变。

【问题讨论】:

  • 在 CameraUpdate 实例中更新缩放级别并更新地图

标签: android google-maps google-maps-api-2


【解决方案1】:

您使用的是正确的代码,如果您想缩小(向外),则需要增加值 (50),如果您想位于包含两个标记的最小区域,则需要将值减小到 0(您可以跳过该值以防万一)。

如果你设置的值大于等于150,而level太大可以在LatLngzoom之后使用动画回调来缩小:

Google API com.google.android.gms.maps.GoogleMap.CancelableCallback)

LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(origin);
builder.include(dest);
LatLngBounds bounds = builder.build();

CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50);
mMap.animateCamera(cu, new GoogleMap.CancelableCallback(){
    void onCancel(){}
    void onFinish(){
        CameraUpdate zout = CameraUpdateFactory.zoomBy(-3.0);
        mMap.animateCamera(zout);
    }
});

这应该放大到LatLng,完成后,缩小3个级别。

【讨论】:

    【解决方案2】:

    试试这个:

     CameraPosition cameraPosition =
                                        new CameraPosition.Builder()
                                                .target(yourlatlng)
                                               // .bearing(targetBearing)// you can ignore it
                                                .zoom(12)// your zoom value
                                                        // .tilt(40)  // angle of view
                                                .build();
    
    
                                mMap.animateCamera(
                                        CameraUpdateFactory.newCameraPosition(cameraPosition),
                                        500,
                                        null);
    

    【讨论】:

    • 我怎样才能发现我的缩放级别是合适的?例如,在我的回复中,有时我们在两个城市之间,有时在两个国家之间的路径,当我设置 zoom(12) 时它返回 goodCameraPosition 吗?
    • 您可以检查当前位置和目的地的距离,并在此基础上设置缩放级别。
    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 2017-10-14
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多