当前位置: 首页 > 知识库问答 >
问题:

基于OSMDroid的一组位置确定合适的变焦级别

广献
2023-03-14
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Location loc : allLocations) {
    LatLng position = new LatLng(loc.getLatitude(), loc.getLongitude());
    builder.include(position);
}

CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(builder.build(), someMarginValue);
map.moveCamera(cu);

共有1个答案

干子瑜
2023-03-14

这对我很管用:

    mapController.setZoom(10.0);
    map.post(new Runnable() {
        @Override
        public void run() {
            mapController.setCenter(boundingBox.getCenterWithDateLine());
            mapController.zoomToSpan(boundingBox.getLatitudeSpan(), boundingBox.getLongitudeSpan());
            map.invalidate();
        }
    });

如果没有初始缩放级别,它根本不起作用。第二部分map.post可以删除,但我认为它有助于zoomToSpan()在计算时处于isLayoutOccurred()状态。您可以像这样获得boundingBox:

final BoundingBox boundingBox = BoundingBox.fromGeoPoints(geoPoints);

而geoPointes只是一个GeoPoint对象的列表。

 类似资料:
  • 我正在努力寻找是否有一种算法/方法可以帮助确定初始显示的合适缩放级别。 例如,给定一组位置点a、B、C、D和E,如何确定将在屏幕上显示所有位置的正确缩放级别?

  • 问题内容: 我在哪里,在正常情况下,CSS,固定股利将正好它被指定的(定位的情况下,)。 如果我的父母有一个translate3d转换,这似乎不被尊重。我没看到什么吗?我尝试了其他webkit转换,例如样式和转换原点选项,但是没有运气。 我在JSFiddle上附加了一个示例,其中我希望黄色框位于页面的顶部,而不是容器元素的内部。 您可以在下面找到小提琴的简化版本: 我该如何使translate3d

  • 当我运行Spring Boot项目时,出现以下错误: 描述: 配置数据源失败:未指定“url”属性,无法配置嵌入式数据源。 原因:无法确定合适的驱动程序类别 行动: 考虑以下事项: 如果您想要一个嵌入式数据库(H2、HSQL或Derby),请将其放在类路径上 如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有激活的配置文件)。 我在pom中得到了这个依赖项。xml文件: 当我试图将Sp

  • 本文向大家介绍基于JavaScript定位当前的地理位置,包括了基于JavaScript定位当前的地理位置的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js定位当前地理位置的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我希望表中的行仅可由组成员访问。我创建用户并通过以下方法将其添加到组中, 然后,我编写的策略使其仅对当前用户可用。但是我需要整个小组来访问它。 pgUser命名可以访问该行的用户。我希望将pgUser列替换为pgRole,其中提到了组的名称,该组的成员可以访问该特定行。任何使行可被整个组访问的提示或方法都是值得赞赏的。 问题答案: 这似乎可行:

  • 当通过编程方式打开组合框时,我遇到了定位和方向方面的问题。因为组合框位于表中的表行内,用户必须在一个单元格中总共单击三次才能打开组合框。为了方便起见,我创建了一个自定义类,允许一键编辑组合框。这很有效!然而,当组合框打开时,结果对话的左上角被塞进所选单元格的左上角,而不仅仅是在组合框的下方,并与组合框对齐。例如: 当用户通过使用鼠标滚轮或单击滚动条并移动它来滚动组合框时,此问题会自行纠正。 另一个