angular - 以 Angular 获取当前位置的坐标

标签 angular google-maps geolocation

我在服务中创建了以下函数,以获取当前位置的坐标并将它们存储在 2 个变量中:

  getCurrentLocation() {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(position => {

        this.currLat = position.coords.latitude;
        this.currLng = position.coords.longitude;
      });
    }
    else {
      alert("Geolocation is not supported by this browser.");
    }
  }

如何通过此函数返回坐标以便在组件中使用它们?

最佳答案

你可以返回一个 promise 。

locationService.ts

 getPosition(): Promise<any>
  {
    return new Promise((resolve, reject) => {

      navigator.geolocation.getCurrentPosition(resp => {

          resolve({lng: resp.coords.longitude, lat: resp.coords.latitude});
        },
        err => {
          reject(err);
        });
    });

  }

组件.ts
  this.locationService.getPosition().then(pos=>
  {
     console.log(`Positon: ${pos.lng} ${pos.lat}`);
  });

关于angular - 以 Angular 获取当前位置的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628568/

相关文章:

javascript - 如何在切换路由时保留数据(Angular)

c# - 增加 Angular 2+ 和 ASP.NET Core WebAPI 应用程序中的超时

angular - 将 DrawingManager 与 @angular/google-maps 一起使用

加载组件时未调用 Angular Material 自动完成更改事件?

css - 在保持 Bootstrap 响应能力的同时在谷歌地图上 float 一个 div

google-maps - 从谷歌地图数据或其他 map API 创建街区叠加层

javascript - 如何以编程方式为 google.maps.places.SearchBox 调用 enter pressed 事件?

android - 在 Android 混合应用中创建 Ractive 实例导致延迟和错误

android - 如何根据Android中与当前位置的距离对地理点进行排序

database - 是否可以有一个邮政编码区域属于多个时区?