Используя библиотеки MapBox GL JS, может кто-нибудь сказать мне, как я могу получить данные о том, имеют ли точка A и точка B прямую видимость или нет. Например, предположим, что точка 0,0,0 на карте является датчиком, и мне нужно обнаружить беспилотник, летящий в 2 милях - - - но тот беспилотник, который рендерится на карте, летит за большим холмом как частькарта местности в MapBox. Как я могу сказать, что линия визирования заблокирована, и могу ли я, чтобы MapBox сказал мне, какой элемент его блокирует?
Я просматривал формулы, основанные на обнаружении данных высот, поступающих из Mapbox: https://docs.mapbox.com/help/troubleshooting/access-elevation-data/. Так что я могу сказать, какова высота элементов ландшафта. Однако я не знаю, как определить, перекрывает ли местность линию видимости.
Чтобы найти отметку вдоль линии, я могу превратить ее в серию точек. Я могу сделать это, используя turf.js.
var points = turf.explode (line);// где линия - это GeoJSON LineString
Но тогда мне нужно посмотреть, есть ли какие-либо точки на этой линии выше высоты беспилотника. И тогда я должен знать, если дрон ближе, чем холм. Я близок, но я мог бы использовать некоторые рекомендации.
Я хорошо оплачиваю библиотеку расширений, если это необходимо.