*スクリプトから住所をPost [#g06ddd01]

#contents

**概要 [#gc261a40]
アドベントカレンダー10日目。書くの忘れてた…

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

**スクリプト [#dbd4b896]
#geshi(javascript){{
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();
    });
});
}}

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

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

**コメントとか [#x7cd96e5]
#comment


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS