我想根据以JSON
格式存储的postcode
在地图上显示标记。
我能够访问JSON
数据并根据JSON
数据中的经度和经度值显示标记。
当我尝试使用postcode
时,它失败并显示错误消息
需要一个非空字符串参数。
虽然我确实使用console.log
来测试我的postcode
,但它确实检索了数据。
我假设发生错误是因为postcode
值没有传递到forwardgeocode
。
我正在使用 Xcode 在我的设备上运行该应用程序。
地图.ts
ionViewDidLoad(){
this.platform.ready().then(() => {
let mapLoaded = this.maps.init(this.mapElement.nativeElement, this.pleaseConnect.nativeElement);
let locationsLoaded = this.maps.load();
Promise.all([
mapLoaded,
locationsLoaded
]).then((result) => {
let locations = result[1];
for (let location of locations) {
let postcode = location.postcode;
console.log(postcode); //did shown up
this.nativeGeocoder.forwardGeocode(postcode)
.then((coordinates: NativeGeocoderForwardResult) => {
this.maps.addMarker(coordinates.latitude, coordinates.longitude);
})
.catch((error: any) => console.log(error));
}
});
});
}
JSON 数据
{
"locations": [
{
"title": "Location A",
"latitude": 1.418744,
"longitude": 103.837302,
"postcode":768547
},
{
"title": "Location B",
"latitude": 1.418744,
"longitude": 103.833300,
"postcode":760798
},
{
"title": "Location C",
"latitude": 1.417349,
"longitude": 103.833021,
"postcode":769092
}
]
}
控制台.log(邮政编码(
2017-07-18 01:23:49.387587+0800 MyApp[15636:8899335] 769092
2017-07-18 01:23:49.388004+0800 MyApp[15636:8899335] 760846
2017-07-18 01:23:49.388257+0800 MyApp[15636:8899335] 768448
从您的 json 数据来看,"postcode":769092
的类型是Number
而不是String
。 转换为字符串并尝试:
let codeToPass = postcode.toString();
this.nativeGeocoder.forwardGeocode(codeToPass);
正向地理编码参考