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

需求

每次车辆状态改变时(相当于一个定时任务)将需要显示的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);
    }

参考文献

百度地图开发者论坛

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,031评论 3 119
  • 前段时间拿到一张生命之花的纸,一个圆划分为8个维度,告诉我们要学会平衡。据说是要在每个维度写下最多三件事,努力完成...
    Funfun而谈阅读 195评论 0 0
  • 聆听,感受,感悟,知道的越多,感觉了自己越傻,越无知。
    邯小韩故事阅读 169评论 0 0
  • 直到现在我还是能差不多得记起昨天晚上我的梦里都出现了哪些。今天醒了之后我就在想,上班的路上还在想,梦到的每一个主题...
    敢不敢笑一个阅读 372评论 0 0
  • 文-灏风 所以去吧 我亲爱的 希望你能好好睡一觉 不要失眠了 也别去看他们挽留的泪 只需要和每个陌生人说 想成为一...
    问浅阅读 557评论 0 4