我正在制作一个控制无人机的应用程序,我需要显示其飞行轨迹和另一个轨道,显示无人机的LED在哪里。
无人机的轨迹很容易。问题是LED的轨迹。由于轨道宽度很重要,我重叠了多个圆圈(每个位置一个-每秒10个位置),因为它们具有以米为单位指定的半径属性。
当前方法的问题是,无人机可以行驶6公里,但在前600米,应用程序开始变得非常慢。
使用折线的问题是它们的宽度以像素为单位,而不是以米为单位。
我怎样才能在不消耗大量内存的情况下实现我的目标?
需要注意的是:航迹宽度很重要,无人机大部分时间会走直线,但它可以在航路点附近转弯。
我使用flutter与谷歌的谷歌地图的官方包,但任何帮助考虑原生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;