nativescript-mapbox使用本机MapView对象

Final Edit

我找到了正确的文档,可以检查MapView实例和mapboxMap以查看可用的函数 .

但是我仍然不清楚如何在JavaScript中实际使用SDK,例如使用 mapboxMap.addLayer(layer: Layer) . 如何制作新图层?

因此,有关如何在我的angular / nativescript应用程序中使用本机SDK的任何提示都很可爱 .

Original Question

我需要在NativeScript项目中更多地控制我的Mapbox插件(我需要实现集群,自定义弹出窗口,自定义(可移动)标记等),而nativescript-mapbox不提供方便的方法 .

根据文档, onMapReady 事件旨在返回对 args.ios || args.android 下的本机MapView对象的引用,但是当我通过日志记录检查此对象时,它似乎只是一个字符串 .

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

我已经尝试引用我认为应该存在的参数(通过阅读Mapbox SDK文档),但似乎没有任何定义 .

所以我的问题是,我究竟如何在我的代码中访问本机MapView实例,以便我可以充分利用SDK来更好地控制插件?

关于如何执行简单操作的一些示例(例如创建MapMarker)将非常有用!

Edit

根据评论,我用 console.dir() 调查了实例 com.mapbox.mapboxsdk.maps.MapView ,并给出了一长串可用函数 . 然而,这些并没有与docs over here中提供的内容对齐 .

我显然不理解某些东西,但觉得我很接近 . 有人可以帮我解决我在这里丢失的链接吗?

我试图回答的一些问题;为什么我发现的文档与此实例中可用的方法不同 . 我怎样才能做一些(看似)简单的事情,比如添加或修改标记或符号图层?

Edit 2

我想我刚想通了,我正在检查一个MapView实例,它有一个名为mapboxMap的属性,我正在查看mapboxMap的文档,并想知道为什么它没有与MapView实例对齐 .

所以只需使用 console.dir(nativeMapView.mapboxMap) ,您就会看到它具有操纵 Map 所需的方法!

回答(1)

2 years ago

com.mapbox.mapboxsdk.maps.MapView{14ffde6 VFED..CL. ........ 0,0-1080,1584} 这是一个实例,不确定日志记录为'string'但你可以尝试`const x = args.android//你得到的实例; console.dir(x)并查看哪些日志,您应该看到方法,成员等 .

至于记录时的类型,它给你的类型,但它在完整类的命名空间,所以com.mapbox ... MapView是你正在记录的实例的类型 . 您可以对NativeScript中的其他布局/视图执行相同的操作 . 添加一个console.log(某物),其中某些东西是对布局或视图(按钮,标签)的参考,你会看到相同的 . 因此,在该实例上,您将可以访问SDK提供的任何内容 . 希望有所帮助 .