在Angular 2 Google地图(AGM Core)中获取当前位置的最简单方法

u

这个问题可能重复,或者其他一些问题已经回答了我想要的答案,但无论如何我还是会问..这是一个非常基本的问题,但是我也想要最简单的方法

我想做的是获取执行我的应用程序的设备的当前位置。.我已经看到了使用地理位置的其他答案,但是我不太了解如何将其实现到AGM,因为我对Ionic还是很陌生和棱角分明,我想知道是否可能有更简单的方法来实现这一目标...

您的回答将不胜感激

这是我的代码:HTML

  <ion-header>

  <ion-navbar>
    <ion-title>viewmapings</ion-title>
    <ion-buttons end>
      <button ion-button (click)="onClose()">Close</button>
    </ion-buttons>
  </ion-navbar>

</ion-header>


<ion-content padding>
  <agm-map 
   [latitude]="lat"
   [longitude]="lng" 
   (mapClick)="onClickLoc($event)"
   [disableDoubleClickZoom] = "true"
   [streetViewControl] = "false"
    [zoom]="15">

    <agm-marker
     [latitude]="clickedLat" 
     [longitude]="clickedLng" 
     *ngIf="selected">
     <agm-info-window>Lat: {{clickedLat}} <br> Lng: {{clickedLng}}</agm-info-window>
    </agm-marker>

  </agm-map>
</ion-content>

SCSS:

page-viewmapings {
    agm-map{
        height: 100%;
    }
}

TS:

import { Component } from '@angular/core';
import { IonicPage, NavController, ViewController } from 'ionic-angular';


@IonicPage()
@Component({
  selector: 'page-viewmapings',
  templateUrl: 'viewmapings.html',
})
export class ViewmapingsPage {

  lat: number = 51.678418;
  lng: number = 7.809007;
  clickedLat: number;
  clickedLng: number;
  selected =  false;

  constructor(public navCtrl: NavController, public viewCtrl: ViewController) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad ViewmapingsPage');
  }

  onClickLoc(event){
    this.clickedLat = event.coords.lat;
    this.clickedLng = event.coords.lng;
    this.selected = true;
  }

  onClose(){
    this.viewCtrl.dismiss()
  }

}
佐拉斯特罗

我在一个项目中做了类似的事情。我的建议是创建一个负责以下内容的服务:

geo-location.service.ts

import { Injectable } from '@angular/core';
import {Observable} from 'rxjs/Observable';

@Injectable()
export class GeoLocationService {

  coordinates: any;

  constructor() { }

  public getPosition(): Observable<Position> {
    return Observable.create(
      (observer) => {
      navigator.geolocation.watchPosition((pos: Position) => {
        observer.next(pos);
      }),
      () => {
          console.log('Position is not available');
      },
      {
        enableHighAccuracy: true
      };
    });
  }
}

然后,您可以在应用程序中的任何位置轻松使用它:

coordinates;
ngOnInit() {
    this.geoLocationService.getPosition().subscribe(
        (pos: Position) => {
            this.coordinates = {
              latitude:  +(pos.coords.latitude),
              longitude: +(pos.coords.longitude)
            };
        });
    }
}

并与agm一起使用:

<agm-map
          [latitude]="coordinates.latitude"
          [longitude]="coordinates.longitude"
          [zoom]="10">
</agm-map>

您可以跳过创建服务的过程,但这确实有用,并且可以使您观察到,因此您的位置会对其进行更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Angular中获取当前路径名称的最简单方法是什么?

Angular 2+ Google Maps从地图上的点击位置获取坐标以更新标记位置

如何减少Angular Web App(agm-core)中的地图调用次数?

构建 Angular 谷歌地图(AGM)时出错

AGM Angular 谷歌地图图像未加载

Google Maps的Angular 2 AGM库按地点ID设置地点

如何在 angular agm 库中获取 googleMap 对象以与 google HeatMap 一起使用?

在Angular 7中动态更改agm-map Google Maps API密钥

angular2中的地图问题

使用 AGM 地图和 Google Places API - 如何传入纬度和经度并检索最近的本地 Google 地图位置的 place_id?

如何在 Angular 2 中加载 Google 地图服务

在Angular中制作editForm的最简单方法是什么?

Angular 2进行确认对话框的简单方法

在Python中获取Google Compute Engine实例IP地址的最简单方法是什么?

取消订阅的最简单方法Angular

如何使用 Angular2-Google-Maps 将 Google 地图设置为 2d

集成Google Maps以获取角度2中的当前位置?

带地图的 Angular 2 路由

Angular 2 简单的 HTTP 获取

dart angular2-模板中的访问地图值组件

如何在angular2中显示地址的谷歌地图

使用多个键过滤Angular2中的地图

使用AGM在Google地图上加载图像

How to get the coordinates of a drawn ploygon using angular google maps (AGM)

OpenLayers 6.4.3和AGM(Angular Google Maps)之间的缩放问题

Angular 2+中的Google登录按钮

Typescript或Angular 2中的Google Maps

使用 Angular2 中的谷歌地图在数据库中插入位置

如何在Ionic 2应用程序中自动更新Google地图上的当前位置