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

Highlight realtime track with google maps

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

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

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

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

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

一些注意事项是:航迹宽度很重要,无人机大部分时间会走直线,但它可以在 waypoints 附近转弯。

我将 flutter 与 google 的 google 地图官方包一起使用,但欢迎任何考虑原生 android 代码的帮助。这可能会有所帮助。

我不知道这是如何工作的详细信息,但有效:

// 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;