美文网首页
百度地图Android:将覆盖物显示在屏幕范围内

百度地图Android:将覆盖物显示在屏幕范围内

作者: 四喜汤圆 | 来源:发表于2018-06-19 15:27 被阅读377次

需求

每次车辆状态改变时(相当于一个定时任务)将需要显示的marker覆盖物+自己当前位置显示在屏幕范围内

官方文档中提供的API

MapStatusUpdateFactory的静态方法(用于更新地图状态)
// 设置显示在屏幕中的地图地理范围
static MapStatusUpdate newLatLngBounds(LatLngBounds bounds)
// 设置显示在规定宽高中的地图地理范围
static MapStatusUpdate newLatLngBounds(LatLngBounds bounds,int width,int height)
LatLngBounds.Builder中提供的实例方法(用于创建LatLngBounds对象)
// 创建地理范围对象
LatLngBounds build()
// 让该地理范围包含一个地理位置坐标
LatLngBounds.Builder include(LatLng point)

思路

利用已有API:1,将需要显示的位置点都include到LatLngBounds中;2,更新地图状态(设置显示在屏幕中的地图地理范围)

/**
     * 设置显示在屏幕中的地理范围
     */
    private void zoomToSpan() {
        LatLngBounds.Builder builder = new LatLngBounds.Builder();
        // 需要显示的marker点
        for (MarkerInfo info : mMarkerInfos) {
            builder.include(new LatLng(info.getWD(), info.getJD()));
        }
        // 我的当前位置
        builder.include(new LatLng(l.getLatitude(), l.getLongitude()));
        LatLngBounds bounds = builder.build();
        // 设置显示在屏幕中的地图地理范围
        MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(bounds, mv_statetrasition_map.getWidth(), mv_statetrasition_map.getHeight());
        mBaiduMap.setMapStatus(u);
    }

参考文献

百度地图开发者论坛

相关文章

网友评论

      本文标题:百度地图Android:将覆盖物显示在屏幕范围内

      本文链接:https://www.haomeiwen.com/subject/bdbaeftx.html