【发布时间】:2018-09-03 23:53:23
【问题描述】:
我正在使用 Ionic3,我正在使用 Google Map Geocoding Google Map Geocoding API,我在这一行中发现了一个语法错误:
result = data.results[1].formatted_address;
Error: Property results does not exist in type Object
我已经用一个肮脏的解决方案解决了这个问题,我想问有没有人给我们一个更好的解决方案。
我的解决方案是在同一个文件中的提供程序类之前创建一个接口,并从我已转换并分配给变量数据的订阅 data2 中获取。
providers/rest/rest.ts:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
interface data {
'results':[
{
"address_components": Object[],
"formatted_address" : string,
}
]
};
@Injectable()
export class RestProvider {
apiUrl1 = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=';//36.731470384526965,10.210593179614534
apiUrl2 = '&key=AIzaSyBtYmf_L2ESZVcnkeIHRw_uD0VQIBbFYAM';
constructor(public http: HttpClient) {
console.log('Hello RestProvider Provider');
}
getCity(latLng) {
let apiUrl = this.apiUrl1+latLng.lat()+','+latLng.lng()+this.apiUrl2;
return new Promise(resolve => {
this.http.get(apiUrl).subscribe(data2 => {
let result ='';
let data: data;
data = <data>data2;
if(data && data.results[1])
result = data.results[1].formatted_address;
else
result = 'Undefinied city'
resolve(result);
}, err => {
console.log(err);
});
});
}
}
【问题讨论】:
标签: angular ionic-framework google-maps-api-3 geocoding typescript-typings