nativescript-mapbox, использующий собственный объект MapView - PullRequest
0 голосов
/ 15 мая 2018

Окончательное редактирование

Я нашел правильную документацию и могу проверить экземпляр MapView и mapboxMap, чтобы увидеть доступные функции.

Однако я все еще непонять, как на самом деле использовать SDK из JavaScript, например, используя mapboxMap.addLayer(layer: Layer).Как мне сделать новый слой?

Так что любые советы о том, как использовать нативный SDK из моего приложения angular / nativescript, были бы хороши.

Оригинальный вопрос

Мне нуженнемного больше контроля над моим плагином Mapbox в моем проекте NativeScript (мне нужно реализовать кластеризацию, настраиваемые всплывающие окна, настраиваемые (перемещаемые) маркеры и т. д.) и nativescript-mapbox не предоставляет удобных методов для этого.

В соответствии сдокументация, событие onMapReady предназначено для возврата ссылки на собственный объект MapView в args.ios || args.android, однако, когда я проверяю этот объект посредством ведения журнала, он выглядит просто как строка.

com.mapbox.mapboxsdk.maps.MapView{14ffde6 VFED..CL. ........ 0,0-1080,1584}

I 'Я пытался ссылаться на параметры, которые, по моему мнению, должны присутствовать в нем (читая документацию по Mapbox SDK), и, тем не менее, кажется, что ничего не определено.

Так что мой вопрос заключается в том, как именно мне получить доступ к собственному MapViewэкземпляр в моем коде, чтобы я мог в полной мере использовать SDK, чтобы иметь больший контроль над плагином?

Некоторые примеры on как я мог бы выполнить простое действие, такое как создание MapMarker, было бы чрезвычайно полезно!

Edit

Основываясь на комментариях, я исследовал экземпляр com.mapbox.mapboxsdk.maps.MapViewс console.dir() и получил длинный список доступных функций.Однако они не совпадают с тем, что доступно в документах здесь .

Я явно чего-то не понимаю, но чувствую, что я близко.Может ли кто-нибудь помочь мне с моей отсутствующей ссылкой здесь?

На некоторые вопросы, на которые я пытаюсь ответить;почему документы, которые я нашел, отличаются от методов, доступных в этом экземпляре.Как я могу делать некоторые (казалось бы) простые вещи, такие как добавление или изменение маркера или слоя символов?

Редактировать 2

Я думаю, я только что понял это,Я проверял экземпляр MapView, у которого есть свойство mapboxMap, я просматривал документацию для mapboxMap и задавался вопросом, почему он не совпадает с экземпляром MapView.

Так что просто используйте console.dir(nativeMapView.mapboxMap), и выПосмотрим, есть ли у нее методы, необходимые для манипулирования картой!

1 Ответ

0 голосов
/ 16 мая 2018

com.mapbox.mapboxsdk.maps.MapView{14ffde6 VFED..CL. ........ 0,0-1080,1584} это экземпляр, который не обязательно указан в журнале как 'строка', но вы можете попробовать `const x = args.android// экземпляр, который вы получаете; console.dir (x) и посмотрите, какие журналы, вы должны увидеть методы, члены и т. д.

Что касается типа, когда он регистрируется, он дает вам тип, но он находится в пространстве имен полного класса, поэтому com.mapbox ... MapView - ваш тип для экземпляра, который вы регистрируете. Вы можете сделать то же самое с другими макетами / представлениями в NativeScript. Добавьте console.log (что-то), где что-то является ссылкой на макет или представление (кнопка, метка), и вы увидите то же самое. Таким образом, в этом случае у вас будет доступ ко всему, что предоставляет SDK. Надеюсь, это поможет.

...