经过大量的尝试和错误,试图找到this的解决方案后,我理解感谢Eddy Verbruggen的帮助,有两种独特的方法可以将标记添加到mapbox地图中:通过onMapReady()中的代码或以编程方式。
但是现在,我找到了一些我无法解决的问题:使用指示Declaring a map programmatically的确切代码,运行时,应用程序出现错误,原因是“TypeError:mapbox.show不是函数”。
代码是:
`var mapbox = require("nativescript-mapbox");
var platform = require("platform");
var isIOS = platform.device.os === platform.platformNames.ios;
mapbox.show({
accessToken: 'here i wrote my own API ACCESS TOKEN',
style: street,
margins: {
left: 40, // default 0
right: 40, // default 0
top: 450, // default 0
bottom: isIOS ? 50: 0
},
center: { // optional without a default
lat: 52.3702160,
lng: 4.8951680
},
zoomLevel: 9.25,
showUserLocation: true,
hideAttribution: false,
hideLogo: false,
hideCompass: false,
disableRotation: false,
disableScroll: false,
disableZoom: false,
markers: [
{
id: 1,
lat: 52.3732160,
lng: 4.8941680,
title: 'Nice location',
subtitle: 'Really really nice location',
icon: 'res://cool_marker',
selected: true,
onTap: function(marker) { console.log("This marker was tapped"); },
onCalloutTap: function(marker) { console.log("marker was tapped"); }
}
]
}).then(
function(showResult) {
console.log("Mapbox show done for " + (showResult.ios ? "iOS" :
"Android") + ", native object received: " + (showResult.ios ?
showResult.ios : showResult.android));
},
function(error) {
console.log("mapbox show error: " + error);
}
)`
为了澄清,该应用程序是从“tns create my-app-name --template tns-template-blank”构建的。我只添加了nativescript-mapbox插件,并在home.js文件中的“以编程方式声明地图”中插入代码。
我无法理解为什么会出现这个错误,我确定插件已正确安装。该应用程序在Android上使用NS版本3.4.1和nativescript-mapbox版本3.3.0。