Итак, после некоторого времени потратить на это, я подумал, что покажу, как я это сделал, на тот случай, если кому-то это понадобится или у вас будет лучшее решение.
Кажется, что cordova имеет встроенное свойство «заголовок» в объекте позиции. https://github.com/apache/cordova-plugin-geolocation
var heading = $rootScope.position.heading;
Во-первых, я убедиться, что маркер всегда указывает в направлении заголовок, даже когда пользователь поворачивает карту, путем вычитания mapBearing (градусы карта превратилась из Севера), от пользователя заголовок.
map.on('rotate', function(){
map.setLayoutProperty('drone', 'icon-rotate', heading - map.getBearing())
});
Я создаю значок в позиции пользователя, добавляю источник и добавляю слой с источником.
map.on('load', function() {
var point = {"type": "Point", "coordinates": [$rootScope.position.long, $rootScope.position.lat]};
map.addSource('drone', {type: 'geojson', data: point });
map.addLayer({
"id": "drone",
"type": "symbol",
"source": "drone"
}
});
Следующая я проверить, что заголовок действительно доступен, так как он появляется только возвращать значение, когда пользователь перемещается (протестирован только на Android до сих пор), и если она есть, обновить заголовок точки ,
if($rootScope.position.heading){
var heading = $rootScope.position.heading;
map.setLayoutProperty('drone', 'icon-rotate', $rootScope.position.heading);
};
Наконец-то я обновляю положение точки в позиции «$ watch».
map.getSource('drone').setData(point);
Таким образом, я могу смотреть пользователям заголовок, и точка держит на пути, даже когда пользователь поворачивает карту.
Благодарим вас за ответ и извините за поздний ответ. Я заглянул в нее, и ваш вклад действительно помог мне найти ответ. –