スクリプトから住所をPost

概要

アドベントカレンダー10日目。書くの忘れてた…

スクリプトからGPSの位置情報にアクセスできます。で、その情報とGoogleのジオコーディングAPIを使って現在地の住所をPostしてみます。

スクリプト

System.addKeyBindingHandler(191, 2, function(id){
    if(!GeoLocation.enabled) GeoLocation.enabled = true;
    var loc = GeoLocation.current();
    Http.sendRequestAsync('http://maps.google.com/maps/geo?hl=ja&sensor=true&ll='+loc.lat+','+loc.lon, true, function(resp){
        var obj = eval('('+resp.body+');');
        for(var i = 0; i < obj.Placemark.length; ++i){
            if(obj.Placemark[i].AddressDetails.Accuracy < 8 && obj.Placemark[i].AddressDetails.Accuracy > 4) continue;
            TextArea.text = obj.Placemark[i].address + ' (Latitude: ' + loc.lat + ' Longitude: ' + loc.lon + ')';
            break;
        }
        TextArea.show();
        TextArea.setFocus();
    });
});

解説

Ctrl+/で住所取得を試みます。PC版でも動きますが、Windows7かつセンサーAPIでアクセス可能なGPSが必要です。 最初にロケーションAPIを有効にします。スクリプトから最初にロケーションにアクセスされる際に確認がでます。 そして位置情報を取得して、その位置情報からGoogleのジオコーディングAPIを呼び出しています。

ジオコーディングAPIから戻ってきたデータを使って、テキストエリアに住所と座標を設定し、テキストエリアを表示してフォーカスを設定してスクリプトは完了です。 いまここだよ!ってやるには便利だけど普通PCでやらないからあれですよね。ちゃんとWMでも動きます!

コメントとか


もし見えてたら空欄にしてね!:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-27 (土) 10:33:44 (1443d)