使用谷歌地图突出显示实时轨迹

Posted

技术标签:

【中文标题】使用谷歌地图突出显示实时轨迹【英文标题】:Highlight realtime track with google maps 【发布时间】:2021-12-12 05:53:48 【问题描述】:

我正在制作一个控制无人机的应用,我需要显示它的飞行轨迹和显示无人机 LED 亮起位置的另一条轨迹。

无人机的追踪很容易。问题出在 LED 的轨道上。由于轨道宽度很重要,我将重叠多个圆圈(每个位置一个 - 每秒 10 个位置),因为它们具有以米为单位指定的半径属性。

当前方法的问题是无人机可以走 6 公里,但在前 600 米,应用程序开始变得非常缓慢。

使用折线的问题在于,它们的宽度以像素为单位,而不是以米为单位。

如何在不消耗大量内存的情况下实现目标?

一些考虑因素是:航迹宽度很重要,无人机大部分时间会走直线,但它可以在航点附近转弯。

我正在使用颤振与谷歌地图的谷歌官方包,但任何考虑原生 android 代码的帮助都是受欢迎的。这可能会有所帮助。

【问题讨论】:

【参考方案1】:

我没有详细说明这是如何工作的,但确实有效:

// https://gis.stackexchange.com/questions/7430/what-ratio-scales-do-google-maps-zoom-levels-correspond-to
final metersPerPx = 156543.03392 *
    math.cos(currentLocation.lat * math.pi / 180) /
    math.pow(2, currentZoomLevel);
final widthInPx = widthInMeters ~/ metersPerPx;

【讨论】:

以上是关于使用谷歌地图突出显示实时轨迹的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android上使用谷歌地图或mapquest动态突出显示道路的一侧(或在旁边画一条线)

使用 CSS 突出显示悬停时的图像区域

如何使用 Jquery 突出显示 svg 地图?

使用 R 在美国地图中突出显示邮政编码

如何在 ios 地图中突出显示国家/地区

我可以使用 maphilight 插件在两个不同的地图上突出显示具有相同类别的区域吗?