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

在OSMBonusPack中高效使用KML

夏炎彬
2023-03-14

我正在使用KML显示地图上的特定区域,你可以点击它并获得一些信息。应用程序必须脱机工作,所以我在本地使用KML文件。

我现在的问题是,当我的覆盖显示KML区域启用时,应用程序的整体速度降低了,并且在某个缩放级别之后,多边形变得太大而无法渲染。

我想获得一些使我的KML实现不那么重资源的一般提示,以及其他有关使用KML的OSMBonusPack的有用信息。

(示例:我注意到OSMDroid即使在我视线之外也会呈现区域纹理,我不知道如何防止这种情况发生。)

共有1个答案

邢献
2023-03-14

试图优化众多图形对象的显示是一个巨大的问题。尝试通用,在这方面有两个经典的解决方案:

1)在低变焦级别下,我们有很多对象要显示。但是由于我们离它们很远,我们可以尝试简化它们。典型的解决方案:标记聚类,折线/多边形简化。

=>标记聚类在OBP中可用,但在KML中默认情况下不使用标记聚类来覆盖转换。

=>DouglasPeuckerReducer提供了折线/多边形简化。

=>没有根据缩放级别进行动态简化。如果您认为它可能会在您的上下文中带来改进,那么通过对polygon/polyline进行子类化并改编绘制方法来实现它并不是什么大不了的事情。

2)在高变焦级别,我们接近一些物体。但许多物体完全在视图之外。典型的解决方案:快速检查边界框,消除物体或甚至一组物体(假设它们被正确地分组)。

=>这在osmdroid/osmbonuspack中当前没有实现。实现可以通过修改FolderOverlay,维护一个边界框属性,并使用draw方法对照mapview边界框检查这个边界框来完成。只有当用户将此文件夹用于对象的空间组(空间上接近的对象)时,这才是有效的--而不是用于对象的逻辑组。

 类似资料:
  • 我发现了osmbonuspack,但是wiki中的API信息和文档非常少。 http://code.google.com/p/osmbonuspack/ 我认为这个库对升级osmdroid很有意思,但我无法学会使用它。 已经被人利用了?

  • 我正在使用作为我的一个库中的。我不确定我是否在多线程环境中正确地使用它,因为我的库在多线程环境中会在非常大的负载下使用,所以它必须非常快。 下面是我的DataClient类: 这就是我要打电话获取数据的方式: 现在我的问题是--我不确定我是否正确地将与一起使用。这里是否需要以及? 我的主要目标是在多线程环境中高效地使用。因为我的库将在非常大的负荷下使用,所以它必须非常快。在重载下,我看到了大量的T

  • 我已经创建了osmdroid地图视图,在上面我可以显示自定义WMS,这很有效。接下来,我需要在地图上以GeoJSON格式从定制服务获得的两点之间绘制路线。GeoJSON如下所示:http://pastebin.com/GJWYNkAq 通过OkHttp客户端调用服务: 我使用以下方法用于此Osmbonuspack库: 当我运行应用程序,启动后崩溃与此错误: 03-09 13:01:51.521 3

  • 问题内容: 下面的Go代码读取10,000条记录的CSV(时间戳和浮点数),对数据进行一些操作,然后将原始值以及的附加列写入到另一个CSV中。但是,它的运行速度非常慢(例如,数小时,但大部分时间是),我很好奇我可以处理的CSV读取/写入是否效率低下。 我正在寻求帮助,以使此CSV读/写模板代码尽快。对于此问题的范围,我们不必担心该方法。 问题答案: 您先将文件加载到内存中,然后再对其进行处理,这对

  • 问题内容: 编辑:这是一组更完整的代码,确切显示了下面每个答案所发生的事情。 目的是仅根据类别成员资格在表中查询一些ID。然后,我总结了这些成员在所有类别中的活动。 上面的方法比以下方法慢得多: 运行第一个查询以获取子集 运行第二个查询求和每个ID 运行内部连接第三个结果集的第三个查询。 如果我理解正确,那么确保完全通过我的所有代码而不是交叉加载可能会更有效率。 在昨天发表问题后,一位成员建议我从

  • 问题内容: 问题很简单: 我有两个清单 我需要得到这些的交集。有没有一种快速的方法来实现这一目标? 问题答案: 您可以使用方法: