MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Geolocator.GetGeopositionAsync() | getGeopositionAsync() Method

デバイスの現在の位置を取得する非同期操作を開始します。

構文


geolocator.getGeopositionAsync().done( /* 成功ハンドラーとエラー ハンドラー */ );

パラメーター

これメソッドにはパラメーターがありません。

戻り値

型: IAsyncOperation<Geoposition>

位置データを取得するための非同期要求を開始し、完了を処理するメソッドを提供します。

解説

GetGeopositionAsync を呼び出すために最初に使用する Geolocator オブジェクトは、ユーザーに同意を求めるプロンプトが表示されるように UI スレッドで実行される必要があります。詳細については、「Guidelines for devices that access personal data (個人データにアクセスするデバイスのガイドライン)」を参照してください。

接続スタンバイの場合、Geolocator オブジェクトは常にインスタンス化できますが、Geolocator オブジェクトは集約するセンサーを見つけることができず、GetGeopositionAsync の呼び出しが 7 秒後にタイムアウトし、PositionChanged イベント リスナーは呼び出されず、StatusChanged イベント リスナーが NoData 状態になると呼び出されます。

この例は、GetGeopositionAsync オブジェクトを呼び出す方法を示しています。


    var loc = null;

    function getloc() {
        if (loc == null) {
            loc = new Windows.Devices.Geolocation.Geolocator();
        }
        if (loc != null) {
            loc.getGeopositionAsync().then(getPositionHandler, errorHandler);
        }
    }

    function getPositionHandler(pos) {
        document.getElementById('latitude').innerHTML = pos.coordinate.latitude;
        document.getElementById('longitude').innerHTML = pos.coordinate.longitude;
        document.getElementById('accuracy').innerHTML = pos.coordinate.accuracy;
        document.getElementById('geolocatorStatus').innerHTML =
                getStatusString(loc.locationStatus);
    }

    function errorHandler(e) {
        document.getElementById('errormsg').innerHTML = e.message;
        // Display an appropriate error message based on the location status.
        document.getElementById('geolocatorStatus').innerHTML =
            getStatusString(loc.locationStatus);
    }

    function getStatusString(locStatus) {
        switch (locStatus) {
            case Windows.Devices.Geolocation.PositionStatus.ready:
                // Location data is available
                return "Location is available.";
                break;
            case Windows.Devices.Geolocation.PositionStatus.initializing:
                // This status indicates that a location device is still initializing
                return "Location devices are still initializing.";
                break;
            case Windows.Devices.Geolocation.PositionStatus.noData:
                // No location data is currently available 
                return "Data from location services is currently unavailable.";
                break;
            case Windows.Devices.Geolocation.PositionStatus.disabled:
                // The app doesn't have permission to access location,
                // either because location has been turned off.
                return "Your location is currently turned off. " +
                    "Change your settings through the Settings charm " +
                    " to turn it back on.";
                break;
            case Windows.Devices.Geolocation.PositionStatus.notInitialized:
                // This status indicates that the app has not yet requested
                // location data by calling GetGeolocationAsync() or 
                // registering an event handler for the positionChanged event. 
                return "Location status is not initialized because " +
                    "the app has not requested location data.";
                break;
            case Windows.Devices.Geolocation.PositionStatus.notAvailable:
                // Location is not available on this version of Windows
                return "You do not have the required location services " +
                    "present on your system.";
                break;
            default:
                break;
        }
    }


要件

最小限サポートされるクライアント

Windows 8

最小限サポートされるサーバー

サポートなし

最小限サポートされる携帯電話

Windows Phone 8

名前空間

Windows.Devices.Geolocation
Windows::Devices::Geolocation [C++]

メタデータ

Windows.winmd

Capabilities

ID_CAP_LOCATION [Windows Phone]

参照

Geoposition
Geocoordinate
Geolocator
GetGeopositionAsync(TimeSpan, TimeSpan)

 

 

表示:
© 2016 Microsoft