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));

如您所见,NativeGeocorderReverseResultNativeGeocoderForwardResult 都被 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 + 电容器中导入时出错 [重复]的主要内容,如果未能解决你的问题,请参考以下文章