スクリプトから住所を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でも動きます! コメントとか † |