Я работаю с Mapbox GL JS как нетипизированный необходимый модуль внутри одного компонента более крупного веб-приложения, используя Angular2 с помощью TypeScript. Все нормально на базовом уровне (карты загружаются, отображается правильно, реагирует на действия от плагинов, таких как геокодер и запросы от других компонентов).Сделать mapbox-gl отзывчивым на карту evented on 'pitch'
Но мне нужно реализовать пользовательские кнопки управления (они должны быть вне контейнера карты, из-за природы приложения, поэтому я не могу сгладить те, которые доступны внутри mapbox). Для этого мне нужно работать с собственными событиями Mapbox, указанными в: MB Events API (я не нашел никакого API, связанного с созданием настраиваемых элементов управления, есть некоторые более старые обсуждения, которые Mapbox Draw фактически реализовали как пользовательский элемент управления, но я не могу для сбора Mapbox Draw, чтобы узнать, как реализовать пользовательские элементы управления, и я думаю, что это другой вид контроля, когда дело доходит до Draw -> т.е. не для пользователей).
Большинство основных событий Mapbox работают для меня, но один важный (шаг) не отвечает.
Я определяю и загрузить карту в OnInit так:
ngOnInit() {
mapboxgl.accessToken = 'someToken';
this.map = new mapboxgl.Map({
container: 'someContainer',
style: 'someStyle',
center: [10, 10],
zoom: 14,
pitch: 0,
bearing: 0,
});
this.map.on('load', function() {
//[1] first I am adding layers
//[2] then I work with markers and geocoder
});
this.map.on(event, function(){
// do whatever is needed on the event
// zoom, move, rotate ...
// all events apart 'pitch' seems to response
});
}
Я не думаю, что проблема заключается в том, как я реализовал MapBox GL JS, хотя я мог бы разделить мой код по частям и только инициализировать карту OnInit, оставляя другие действия для других декораторов или компонентов (потенциально используйте пользовательские типы и импортируйте Mapbox GL JS из npm). Я думаю, что проблема может заключаться в том, что «шаг» не является признанным событием.
Я нашел этот закрытый вопрос GitHub, который точно описывает, с чем я столкнулся: GH Mapbox #3391, но я не могу найти никакого разрешения. Другие связанные с этим проблемы GitHub, похоже, не позволяют решить эту проблему, и я не нашел другого значимого источника информации о том, как получить доступ к событию «pitch» (я попытался подтвердить это, пройдя код распространения Mapbox GL JS, но я не в состоянии сказать это точно). Я даже не уверен, что «pitch» - это правильный ярлык для события, которое я ищу (мне нужно прислушиваться к изменениям угла обзора).
Интересно, есть ли способ доступа к событиям Mapbox GL JS, связанным с шагом (угол обзора планировщика карты)?
Любая идея наиболее ценится. Спасибо.
P.S .: Я использую версию mapbox-gl-js: 0.28.0 ... – KrNo