NativeGeocoderReverseResult 在 ionic4 + 电容器中导入时出错 [重复]
Posted
技术标签:
【中文标题】NativeGeocoderReverseResult 在 ionic4 + 电容器中导入时出错 [重复]【英文标题】:NativeGeocoderReverseResult getting error while importing in ionic4 + capacitor [duplicate] 【发布时间】:2019-05-02 11:56:33 【问题描述】:从本地地理编码器导入 NativeGeocoderReverseResult 时出错。我正在使用带有电容器的 ionic4
import NativeGeocoder, NativeGeocoderReverseResult, , NativeGeocoderOptions from '@ionic-native/native-geocoder/ngx'; 除了 NativeGeocoderForwardResult 之外的所有内容都在导入且没有错误
import Component from '@angular/core';
import Plugins, Capacitor, CameraSource, CameraResultType, CameraDirection, Camera, Geolocation from '@capacitor/core';
import NativeGeocoder, NativeGeocoderReverseResult, NativeGeocoderForwardResult, NativeGeocoderOptions from '@ionic-native/native-geocoder/ngx';
@Component(
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
)
export class HomePage
selectedImage: string;
coordinates: lat: number; long: number; ;
resultValue: any;
constructor(private mediaCapture: MediaCapture, private alertcontroller: AlertController, private nativeGeocoder: NativeGeocoder)
this.getLocation();
getLocation()
if (!Capacitor.isPluginAvailable('Geolocation'))
this.alertcontroller.create(header: 'could not fetch location');
return;
Plugins.Geolocation.getCurrentPosition().then(position =>
this.coordinates = lat: position.coords.latitude, long: position.coords.longitude;
console.log('coordinates-oojj', this.coordinates);
);
const options: NativeGeocoderOptions =
useLocale: true,
maxResults: 5
;
this.nativeGeocoder.reverseGeocode(52.5072095, 13.1452818, options)
.then((result: NativeGeocoderReverseResult[]) =>
this.resultValue = result;
console.log('resultValue',this.resultValue)
console.log(JSON.stringify(result[0]))
)
.catch((error: any) => console.log(error));
【问题讨论】:
错误是什么?你能给出最小的可能重现代码吗? src/app/home/home.page.ts(5,26) 中的错误:错误 TS2305:模块 '"D:/ionic-onecredit/node_modules/@ionic-native/native-geocoder /ngx/index"' 没有导出的成员 'NativeGeocoderReverseResult'。代码与上面相同,唯一的问题是 NativeGeocoderReverseResult 没有被导入 您为什么希望在模块中找到该成员?你有正确的版本吗? 是的,我正在使用离子 4 + 电容器,我正在关注此ionicframework.com/docs/native/native-geocoder,以便将从地理位置(存在于电容器中)获得的纬度和经度转换为地址 【参考方案1】:NativeGeocoderReverseResult 不再是 Ionic 的一部分。插件 (native-geocoder) 已更新至 3.2.0。文档已弃用。建议使用新的导入语句:
import NativeGeocoder, NativeGeocoderResult, NativeGeocoderOptions from '@ionic-native/native-geocoder/ngx';
使用以下代码:
let options: NativeGeocoderOptions =
useLocale: true,
maxResults: 5
;
this.nativeGeocoder.reverseGeocode(52.5072095, 13.1452818, options)
.then((result: NativeGeocoderResult[]) => console.log(JSON.stringify(result[0])))
.catch((error: any) => console.log(error));
this.nativeGeocoder.forwardGeocode('Berlin', options)
.then((result: NativeGeocoderResult[]) => console.log('The coordinates are latitude=' + result[0].latitude + ' and longitude=' + result[0].longitude))
.catch((error: any) => console.log(error));
如您所见,NativeGeocorderReverseResult 和 NativeGeocoderForwardResult 都被 NativeGeocoderResult 取代。
更多信息请查看源代码:https://github.com/ionic-team/ionic-native/blob/4de49c37dd9bd23799b089595db998ade34a9c88/src/%40ionic-native/plugins/native-geocoder/index.ts
【讨论】:
感谢@Raphael Mayer。我做了同样的事情,但它得到的错误是 Geocoder:getFromLocationName Error: Timed out waiting for response from server 是的,这是正常的服务器超时。与你的问题无关。也许您使用代理,也许您使用 ***,也许您和谷歌之间存在其他问题。我没有办法帮你解决这个问题。 当我尝试使用自己的设备时,它起作用了。我认为它不适用于浏览器或模拟器 您确定您的应用具有互联网权限?以上是关于NativeGeocoderReverseResult 在 ionic4 + 电容器中导入时出错 [重复]的主要内容,如果未能解决你的问题,请参考以下文章