2017-01-01 10 views
1

私は私は私の次のコードに従った場合、私はエラーを得続ける私のイオン性のアプリケーションでDynamoDBの中に格納するcoordsに地理位置情報データを取得しようとしています、の取得ジオロケーションデータは、イオン2アプリケーション

bookResource(resourceId, timeslot): Promise<void> { 
let promise: Promise<void> = new Promise<void>((resolve, reject) => { 
    this.globals.displayLoader("Place..."); 

    let place : Place = { 
    coords: google.maps.LatLng(position.coords.latitude, position.coords.longitude), 
    userId: this.globals.getUserId(), 
    userFirstName: this.globals.getUserFirstName(), 
    userLastName: this.globals.getUserLastName(), 
    }; 
    this.authClient.getClient().placesCreate(this.globals.getUserId(), place).subscribe(
    (data) => { 
     place.placeId = data.placeId; 
     this.places.push(place); 
     resolve(); 
    }, 
    (err) => { 
     reject(err); 
    } 
); 
}); 
return promise; 
} 

に格納します上記のコードのcoordsの値はジオロケーション座標を格納していませんが、私のuserIdの値は正しく格納されていますが、これをどのように修正しますか?ありがとう

+0

あなたは、デバイスの現在位置を取得しようとしていますか? – raj

+0

@rajはい私はあなたが私はあなたの質問に持ってコードを修正することができる、私は約束を返す私のコードを更新したデバイス –

答えて

0

ネイティブ機能PromiseまたはObservableは、successコールバック内でのみアクセスできます。したがって、デバイスの場所を保存しようとしている場合は、GeoLocationプラグインをionicから使用することができます。 docs

import { Geolocation } from 'ionic-native'; 
    getLocation(){ 
    let options = { maximumAge: 3000, timeout: 50000, enableHighAccuracy: true }; 
    return Geolocation.getCurrentPosition(options).then((pos)=>{ 
    let place : Place = { 
     coords: pos.coords, 
     userId: this.globals.getUserId(), 
     userFirstName: this.globals.getUserFirstName(), 
     userLastName: this.globals.getUserLastName(), 
    }; 
    return place; 
    }).catch((err) => { 
     console.log(err); 
    }); 
    } 

はその後、あなたはそれが

ngOnInit() { 
    this.map = this.initMap(); 
    setInterval(() => { 
    this.initMap(); 
    }); 
} 

以下であるデータベースにその値をLatLongブログの値を取得し、保存する機能を作成

this.getLocation().then((place)=>{ 
    console.log(place) // you can do whatever you want with ``place`` here 
    this.authClient.getClient().placesCreate(this.globals.getUserId(), place).subscribe(
    (data) => { 
     place.placeId = data.placeId; 
     this.places.push(place); 
    }, 
    (err) => { 
    } 
); 
}) 
+0

の現在位置を取得しようとしています、私はあなたの答えが動作すると信じて、感謝 –

+0

私は私の答えを更新しました私はあなたのために働くと思う解決策と一緒に。それが助けられたら、答えとしてそれを受け入れてください。 – raj

0

実行ngOnInitのような場所にアクセスすることができますチェックアウト実行される関数OnInit約束を返します。

initMap(): Promise<void> { 
    let promise: Promise<void> = new Promise<void>((resolve, reject) => { 
     Geolocation.getCurrentPosition().then((position) => { 

     let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
     let place: Place = { 
      coords: latLng, 
      userId: this.globals.getUserId(), 
      userFirstName: this.globals.getUserFirstName(), 
      userLastName: this.globals.getUserLastName(), 
     }; 
     let GooleMap = new google.maps.Map(document.getElementById('map'), { 
      center: latLng, 
      zoom: 18 
     }); 
      this.authClient.getClient().placesCreate(this.globals.getUserId(), place).subscribe(
      (data) => { 
       place.placeId = data.placeId; 
       this.places.push(place); 
       resolve(); 
      }, 
      (err) => { 
       reject(err); 
      }); 
     }); 
    }); 
    return promise; 
    } 
関連する問題