0

最终编辑

我找到了正确的文档,并且可以检查 MapView 实例和 mapboxMap 以查看可用功能。

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

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

原始问题

我需要在我的 NativeScript 项目中对我的 Mapbox 插件进行更多控制(我需要实现集群、自定义弹出窗口、自定义(可移动)标记等),并且 nativescript-mapbox 没有为此提供方便的方法。

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

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

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

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

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

编辑

根据评论,我调查了该实例com.mapbox.mapboxsdk.maps.MapViewconsole.dir()获得了一长串可用功能。但是,这些与此处的文档中可用的内容不一致。

我显然不明白什么,但感觉我很接近。任何人都可以帮我解决这里缺少的链接吗?

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

编辑 2

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

因此,只需使用console.dir(nativeMapView.mapboxMap)它,您就会发现它具有操作地图所需的方法!

4

1 回答 1

1

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(something) ,其中某事是对布局或视图(按钮、标签)的引用,您会看到相同的内容。因此,在该实例上,您将可以访问 SDK 提供的任何内容。希望有帮助。

于 2018-05-16T16:11:05.067 回答