PowerShell覚え書き
背景
完全に時代錯誤かもしれませんが、これまで個人的にWEB APIと無縁でした。遊びはじめたら色々とあるので、とりあえず基本的なことからメモしておきます。(本当はGoogle Mapsで色々やってみたいのですが、時間がかかりそうなので。)お題
Google Geocoding APIで住所から緯度経度を表示する。param( [String]$address="千代田区北の丸公園") $encoded_address=[System.Uri]::EscapeDataString($address) $google_geocode_api_uri="http://maps.googleapis.com/maps/api/geocode/xml?address="+ $encoded_address+"&sensor=false&language=ja" $enc = [System.Text.Encoding]::GetEncoding("utf-8") $bytes=(New-Object System.Net.WebClient).DownloadData($google_geocode_api_uri) $xml=[XML]$enc.getString($bytes) $xml.GeocodeResponse.result| %{ "lat:"+$_.geometry.location.lat+" lng:"+$_.geometry.location.lng+ " address:"+$_.formatted_address }
結果
lat:35.6905448 lng:139.7546424 address:日本, 東京都千代田区北の丸公園メモ
リクエスト送信は最初System.Net.WebClient.DownloadData(URI)でやっていたのですが、日本語データが含まれる場合にXMLへのキャストに失敗(XmlDocumentに変換できません。)したために上記の方法に変更しました。また、上記ではXMLで結果を受け取っていますがGeocoding APIとしてはJSON形式(推奨)でも受け取る事が可能です。PowerShell3ではJSON対応のコマンドレットが追加される予定ですので、いずれはJSONで実装したいと思います。
0 件のコメント:
コメントを投稿