离子地理定位 - 如何更新位置?

Posted

技术标签:

【中文标题】离子地理定位 - 如何更新位置?【英文标题】:Ionic geolocation - how to update position? 【发布时间】:2018-05-09 16:18:11 【问题描述】:

我是 Ionic 的新手,只是在我的应用程序中修复了地理位置。我现在可以在地图上看到我的位置,但我遇到了位置没有在地图上更新的问题。我尝试了所有可能的方法并在 Google 上搜索了很多内容,并在 *** 上阅读了此处,但仍然没有任何效果。位置没有更新。你能看看我的代码并告诉我我做错了什么吗?

 loadMap() 

      this.geolocation.getCurrentPosition().then((position) => 
      let latLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      let mapOptions = 
        center: latLng,
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      
      this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);


      //Red pin shows users position on the map
      var myPositionMarker = new google.maps.Marker(
        map: this.map,
        position: latLng, 
        icon: 'assets/imgs/pins/redpin.png',
        enableHighAccuracy:true
      )


      //For position update(this is a code which is not working)
        let watch = this.geolocation.watchPosition();
        watch.subscribe((data) => 
       // data can be a set of coordinates, or an error (if an error occurred).
       // data.coords.latitude
       // data.coords.longitude
       );

【问题讨论】:

【参考方案1】:

您可以尝试使用 watchPosition 方法而不是 getCurrentPosition 类似:

loadMap() 

  this.geolocation.watchPosition().subscribe((position) => 
      let latLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      let marker = new google.maps.Marker(
        map: this.map,
        icon:  'assets/imgs/pins/redpin.png',
        position: latLng,
        enableHighAccuracy:true
       );
      let message = "Current Position";
      this.addInfoWindow(marker, content);
  , (err) => console.log(err); );

【讨论】:

以上是关于离子地理定位 - 如何更新位置?的主要内容,如果未能解决你的问题,请参考以下文章

离子原生地理定位在观察位置上捕获错误

离子地理定位总是陷入错误方法

本地地理定位离子手表位置在后台工作,但在手机锁定时不工作

离子地理定位,iOS 上没有权限

地理定位离子在浏览器测试中工作但不在android上

具有离子框架的 ngCordova 地理定位