- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 map 上有很多长折线。我想优化他们的绘图,因为在几千个点上,折线的绘制速度非常慢。
我的 drawMapRect
看起来像这样:
- for each polyline segment
- verify if it's bounding box intersects the currently drawn MKMapRect
- if id does, draw it
如果没有太多的点,这会很好。但是当有 8-16 个 maprects 可见和 2-3000 个点时,它们在 for
中的运行速度非常慢。
如果它们只是位置,一个解决方案是实现某种四叉树/r 树结构,并且只过滤当前绘制的 MKMapRect
中的那些位置,但我不确定关于这是否适合折线本身。
如果我仅过滤当前 maprect 内的线段端点,则可能不会绘制某些线段。例如,点 1-2 之间的两个红色 maprects 中没有段端点但仍需要绘制 ...
是否有某种类似于四叉树的算法或某种解决此问题的方法?
最佳答案
不幸的是,我不知道这样的数据结构可以检查线与矩形的交点。
但是,解决该问题的一种方法可能如下:
在分辨率非常低的 map (2 维阵列)中绘制所有 多段线,并注意多段线绘制它的每个像素。然后在这个低分辨率 map 中扫描绘制像素的相关矩形,并存储所有相关的折线。然后可以在全分辨率 map 中绘制这些。
也许这个近似算法比你现在使用的精确算法更快。
编辑:
我假设您对多段线 MKMapRect 交点使用了一种有效的算法,如 How to find the intersection point between a line and a rectangle? 中所示。 .
关于ios - Polyline drawMapRect 优化绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33776811/
我正在尝试比较由 Google Directions API 生成的 Polyline - overview_polyline使用一组已经存在的多段线,并查看新多段线的哪一部分已包含在其中一条多段线中
如何在单击折线事件的两个现有点之间的折线上添加点? 谢谢! 最佳答案 如果您只是在谈论 Polyline只有 2 个点,您可以使用 LatLngBounds 的中心包含 Polyline . Goog
我尝试使用 folium 根据速度(如 Strava 等应用程序)使用不同颜色的比赛路径。 我看到您可以根据数据更改标记的颜色,但我无法使用 PolyLines 将其转置。 这是我的可视化的代码: p
有人可以告诉我这段代码有什么问题吗? Cesium.Math.setRandomNumberSeed(1234); var viewer = new Cesium.Viewer('ce
这里! 有一个关于我们需要实现的功能的查询,它是将多种颜色传递到折线上的航路点 0 到 1,但我们卡在了 H.geo.Polyline 上,只能应用一种样式: polyline = new H.map
阅读@Akexorcist 在 Get driving directions using Google Maps API v2 上的回答后,我实现了他们的解决方案,以使用多段线绘制从调用 maps.g
我目前有一张 map ,每 10 米我使用 LocationListener 刷新我的位置并获取新的纬度和经度。现在我希望用户所走的路线用红线显示。因此,每次调用 LocationListener 类
似乎标题是不言而喻的,但要详细说明,这是我遇到的问题,我在 map 上显示了多条折线,现在我打算做的是,当我将鼠标悬停在上面时列表中的某个折线,只有该折线会突出显示(或更改颜色)。我现在所拥有的是这样
我们正在使用谷歌的折线解码算法来解码我们的坐标。但在我们的例子中,大多数坐标在解码后都是错误的。我们还以更深的精度测试了该过程。 这是我们的代码,也是我们用来测试坐标错误的日志: let coordi
是否可以通过客户端使用带有编码折线的 Google Elevation API? 我知道有 https://maps.googleapis.com/maps/api/elevation/json?ke
我正在使用 google maps API V3 并在折线上创建了一些图标动画。 我的代码 var line; function initialize() { var mapOptions =
我有一个 List我需要在第二个线程中生成,以免失去 GUI 响应能力。线程完成后,我需要访问 List在 GUI 线程中显示。这是我遇到问题的地方。我正在使用匿名方法调用 UI 线程上的复制逻辑,将
我在 map 上有很多长折线。我想优化他们的绘图,因为在几千个点上,折线的绘制速度非常慢。 我的 drawMapRect 看起来像这样: - for each polyline segment - v
我无法使用传单和折线进行串扰 - 这是一个 MWE: library(crosstalk) library(leaflet) theta % addTiles() %>% addCircleM
我无法使用传单和折线进行串扰 - 这是一个 MWE: library(crosstalk) library(leaflet) theta % addTiles() %>% addCircleM
我有一个用折线对象动态制作的图形。它产生了一些有趣的东西,但我只想保留最后 10 个坐标,一旦我们到达第 10 个位置,每个坐标都会向左移动 X 像素,新值将添加到最后。 在我的绘图类的 Add 函数
我尝试显示带有地址而不是经纬度的 google.maps.Polyline。 我现在的代码是: var flightPlanCoordinates = [ new google.maps.La
我正在使用 Cesium 并希望在视觉上表示相同的两个实体之间的多条折线。例如,从实体 A 到实体 B 的绿色多段线,以及从实体 A 到实体 B 的蓝色多段线。我希望它们不要重叠或混合,所以我想象随着
我使用 Google Maps Api 有一段时间了,最近我检查了有没有新东西:绘图管理器。从两天前开始我就在玩这个,现在我想知道一些事情。我正在寻找编辑多段线时触发的事件。 有一个 polyli
当我点击折线时,我希望时间(自定义对象)显示在那个特定经纬度位置。 实现折线的代码 PolylineOptions lineOptions = new PolylineOptions().width(
我是一名优秀的程序员,十分优秀!