Ionic Native Geocoder "Cannot find a location."
Ionic Native Geocoder "Cannot find a location."
我在我的 Ionic 应用程序中使用 Native Geocoder。记录在这里
这是我提供者中的方法-
//This calls the Native geocoder and returns the geocoordinates.
getGeoCode(address: string): Promise<any> {
console.log('The address key is - ' + address);
return new Promise((resolve, reject) => {
this.nativeGeocoder.forwardGeocode(address)
.then((nativegeocoordinates: NativeGeocoderForwardResult) => {
console.log('The coordinates are - ' + JSON.stringify(nativegeocoordinates));
let addressCoordinates: DeliveryAddressCoordinates = nativegeocoordinates;
resolve(addressCoordinates);
})
.catch((error: any) => {
console.log(JSON.stringify(error));
reject(error);
});
})
}
该方法接受地址字符串作为输入。所以我从 google 处 API 获取地址,并在此处传递描述。
现在,对于某些地址,它似乎找不到坐标,returns 出现“找不到位置”消息。例如"Bhadra Brookefields Apartment B Block, Kundanahalli Lake Road, Kundalahalli, Brookefield, Bengaluru, Karnataka, India" 是一个有效地址和 returns 坐标,而 “时代广场 42 街站,纽约,纽约州,美国” 找不到匹配项,returns 一条消息说 - “找不到位置”。
有关“找不到位置”的更多信息,似乎源自 cordova plugin code here on line #182.,它引用了 Android class。
这是一个已知问题吗?还是我做错了什么?
至少还有一个人认为该插件似乎有点像 hit/miss - 下面是对这篇文章的评论
Ionic 2 – Geolocation and GeocodingIonic 2 – Geolocation and Geocoding
评论来自一位 Purple Edge 先生,我不能 link 评论本身,因为它是 disq,Stack 不允许。
因此,我采用了既可以解释为解决方案也可以解释为解决方法的方法。我没有使用插件,而是简单地使用 api,从而发出 Http 请求来获取信息。
获取信息的方法(在提供者中):
getGeoCodefromGoogleAPI(address: string): Observable<any> {
return this._http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + address)
.map(res => res.json());
}
方法调用 ->
this._deliveryAddressService.getGeoCodefromGoogleAPI(event.description).subscribe(addressData => {
let latitude: string = addressData.results[0].geometry.location.lat;
let longitude: string = addressData.results[0].geometry.location.lng;
}
当然要有注册key的正当程序。
不是插件的问题。您只需要再添加一个,这样您就可以请求在 phone.
中激活 High Accuracy
的许可
我在我的 Ionic 应用程序中使用 Native Geocoder。记录在这里
这是我提供者中的方法-
//This calls the Native geocoder and returns the geocoordinates.
getGeoCode(address: string): Promise<any> {
console.log('The address key is - ' + address);
return new Promise((resolve, reject) => {
this.nativeGeocoder.forwardGeocode(address)
.then((nativegeocoordinates: NativeGeocoderForwardResult) => {
console.log('The coordinates are - ' + JSON.stringify(nativegeocoordinates));
let addressCoordinates: DeliveryAddressCoordinates = nativegeocoordinates;
resolve(addressCoordinates);
})
.catch((error: any) => {
console.log(JSON.stringify(error));
reject(error);
});
})
}
该方法接受地址字符串作为输入。所以我从 google 处 API 获取地址,并在此处传递描述。
现在,对于某些地址,它似乎找不到坐标,returns 出现“找不到位置”消息。例如"Bhadra Brookefields Apartment B Block, Kundanahalli Lake Road, Kundalahalli, Brookefield, Bengaluru, Karnataka, India" 是一个有效地址和 returns 坐标,而 “时代广场 42 街站,纽约,纽约州,美国” 找不到匹配项,returns 一条消息说 - “找不到位置”。
有关“找不到位置”的更多信息,似乎源自 cordova plugin code here on line #182.,它引用了 Android class。
这是一个已知问题吗?还是我做错了什么?
至少还有一个人认为该插件似乎有点像 hit/miss - 下面是对这篇文章的评论
Ionic 2 – Geolocation and GeocodingIonic 2 – Geolocation and Geocoding
评论来自一位 Purple Edge 先生,我不能 link 评论本身,因为它是 disq,Stack 不允许。
因此,我采用了既可以解释为解决方案也可以解释为解决方法的方法。我没有使用插件,而是简单地使用 api,从而发出 Http 请求来获取信息。
获取信息的方法(在提供者中):
getGeoCodefromGoogleAPI(address: string): Observable<any> {
return this._http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + address)
.map(res => res.json());
}
方法调用 ->
this._deliveryAddressService.getGeoCodefromGoogleAPI(event.description).subscribe(addressData => {
let latitude: string = addressData.results[0].geometry.location.lat;
let longitude: string = addressData.results[0].geometry.location.lng;
}
当然要有注册key的正当程序。
不是插件的问题。您只需要再添加一个,这样您就可以请求在 phone.
中激活High Accuracy
的许可