Mapbox Android 确定包含所有标记的缩放级别

Posted

技术标签:

【中文标题】Mapbox Android 确定包含所有标记的缩放级别【英文标题】:Mapbox Android determine zoom level that contain all markers 【发布时间】:2014-11-28 03:52:39 【问题描述】:

有没有办法确定缩放级别,以便我的所有标记都适合缩放级别?我正在使用 mapbox 0.4.0

我觉得答案和这个差不多,但是找不到android版本

[https://www.mapbox.com/mapbox.js/example/v1.0.0/markers-only-at-zoom-level/]

【问题讨论】:

【参考方案1】:

使用最新的 SDK 版本,现有答案不再适用。相反,使用这个:

LatLngBounds latLngBounds = new LatLngBounds.Builder()
  .include(new LatLng(<marker 1 latlng position>)) 
  .include(new LatLng(<marker 2 latlng position>)) 
  .build();

mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 50));

感谢友好的 Mapbox 支持提供此答案:)

【讨论】:

【参考方案2】:

好的,我想通了。我需要创建一个包含所有标记的边界框

final BoundingBox zoomLevel = findZoomLevel(hotelLocation,poiLocations);
mv.zoomToBoundingBox(zoomLevel,true,true);
.....

private BoundingBox findZoomLevel(LatLng hotelLocation, LatLng[] poiLocations) 
        double bottomPadding = 0.002;
        double topPadding = 0.005; 
        BoundingBox box = new BoundingBox(findTopMost(hotelLocation,poiLocations).getLatitude() + topPadding,
                findRightMost(hotelLocation,poiLocations).getLongitude(),
                findBottomMost(hotelLocation,poiLocations).getLatitude() - bottomPadding,
                findLeftMost(hotelLocation,poiLocations).getLongitude());

        return box;

更新

LatLngBounds latLngBounds = new LatLngBounds.Builder()
  .include(new LatLng(lat1,lng1)) 
  .include(new LatLng(lat2,lng2)) 
  .build();

mapboxMap.moveCamera(
CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, 
                                    int paddingLeft, 
                                    int paddingTop, 
                                    int paddingRight, 
                                    int paddingBottom));

【讨论】:

zoomToBoundingBox() 似乎不再可用。有什么选择? @cuddlecheek 像素

以上是关于Mapbox Android 确定包含所有标记的缩放级别的主要内容,如果未能解决你的问题,请参考以下文章

MapBox 清除所有当前标记

从 mapbox 地图中删除所有标记或重新初始化地图

nativescript-mapbox 显示黑色地图标记

如何在 MapBox(Z-Order)上的地图标记后面设置当前位置指示器?

Android MapBox 充气错误。找不到类 MapView

通过 mapbox gl js 向 mapbox 中的地图添加一些基本标记