Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angular2 typescript中获取地理位置?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何在angular2 typescript中获取地理位置?

Javascript 如何在angular2 typescript中获取地理位置?,javascript,angular,typescript,Javascript,Angular,Typescript,我正试图在angular2上获得地理位置,但到目前为止还不可能。 请检查我试过的代码 location = {}; setPosition(position){ this.location = position.coords; console.log(position.coords); } ngOnInit(){ if(window.navigator.geolocation){ window.navigator.geolocati

我正试图在angular2上获得地理位置,但到目前为止还不可能。 请检查我试过的代码

location = {};
  setPosition(position){
  this.location = position.coords;
  console.log(position.coords);
  }

     ngOnInit(){
        if(window.navigator.geolocation){
          window.navigator.geolocation.getCurrentPosition(this.setPosition.bind(this));
      };
}
它是:

下面是一个使用typescript的简单示例:

navigator.geolocation.getCurrentPosition(position => {  
    console.log(position);  
    // in your case
    this.location = position.coords;
});

试试这个,它对我有用

 if(navigator.geolocation){
    navigator.geolocation.getCurrentPosition(position => {
        this.lat=position.coords.latitude;
        this.long=position.coords.longitude;
        var latlng = { lat: this.lat, lng:this.long };

       let geocoder = new google.maps.Geocoder();
     geocoder.geocode(  {'location':latlng}, (results, status) => {
     if (status == google.maps.GeocoderStatus.OK) {
     let result = results[0];
     let rsltAdrComponent = result.address_components;
     let resultLength = rsltAdrComponent.length;
     if (result != null) {
     console.log(rsltAdrComponent[resultLength-5].short_name)
     } else {
     window.alert('Geocoder failed due to: ' + status);
     }
     }
     });
     });     
   };

如果我删除窗口并尝试使用navigator.geolocation,它将不起作用吗?
 if(navigator.geolocation){
    navigator.geolocation.getCurrentPosition(position => {
        this.lat=position.coords.latitude;
        this.long=position.coords.longitude;
        var latlng = { lat: this.lat, lng:this.long };

       let geocoder = new google.maps.Geocoder();
     geocoder.geocode(  {'location':latlng}, (results, status) => {
     if (status == google.maps.GeocoderStatus.OK) {
     let result = results[0];
     let rsltAdrComponent = result.address_components;
     let resultLength = rsltAdrComponent.length;
     if (result != null) {
     console.log(rsltAdrComponent[resultLength-5].short_name)
     } else {
     window.alert('Geocoder failed due to: ' + status);
     }
     }
     });
     });     
   };