何でも Google マッピング

住所から緯度経度を出せるようになったので、これからいろんな場所を Google マッピングしていこうと思います。

Google Map Geocoding API

 最近では Google MapYahoo!地図 などの地図検索サービスが充実しているので、行きたいところの住所などが分かれば大抵の場所はネットの地図で検索することが出来る便利な世の中になりました。さらに最近では上空の衛星写真も見られたり、ストリートビューのように周辺の町並みなどを見ることが出来るようになったりと、知らない場所に行くのに必携のツールになっています。

 しかし通常の検索では一カ所(またはその周辺)を検索するのに特化されているので、例えば「横浜市内に大戸屋がどれくらい点在するのか知りたい」なんて時には人手でひとつひとつ検索するしかありませんが、これもまた面倒な話です。とある企業チェーン店の全店舗を一気に検索することで、その企業の出店傾向も掴めたりして、なかなかおもしろい使い方を編み出すことが出来ると思うのですが。

 そんなことを常々考えていたら、Google Map では検索機能 (API) を外部に公開しており、簡単な Web プログラミングでこれを利用することが出来ることを知りました。そしてこれを利用し、様々な住所リストを一気に緯度経度の座標情報に変換するスクリプトを作ってみました。よーし、これでいろんな住所情報を緯度経度情報に変換してやるぞと言うことで、その成果をご紹介。今後も続々増えていくと思われます。

さまざまなマッピング
Answer × Answer 設置店舗マップ
最近よくやっている、セガのクイズゲームが置かれているゲームセンターの店舗地図。設置店が限られるので、行く先々での時間潰しポイントとして把握しておければなと。
お出かけ先のバイク駐輪場マップ
バイクは4輪車のようにあちこちにコインパーキングがあるわけではないので、お出かけ先で駐輪場を見つけるのはとても至難の業。あらかじめ調べてから出かけます。
大戸屋食堂で外食マップ
関西ではあちこちに安食堂があったので、仕事で遅いときも食事には苦心しなかったのですが、横浜界隈だと大戸屋しかありません。その数少ない大戸屋を最大限に利用するべく、店舗を一覧できるようにしました。
OK ストア探索図
今私の中で話題沸騰のスーパーマーケット、OKストア。しかし今時オフィシャルサイトを持たない会社なので地元以外の店舗が分からないので、作ってみました。
Hub と 82 ALE HOUSE 分布図
激安イングリッシュパブチェーン2ブランド(会社は同じ)の地図。横浜には関内の一店舗しかありませんが、都内に入るとそこそこ店舗があるのであらかじめ調べておくとよいことがあるかもしれません。
3 coins 雑貨地図
100円ショップよりはちょっと贅沢(?)な300円雑貨店の地図。実はめっさ女の子向けの店なのですが、食器関係が昔の無印良品を彷彿とさせて燃えます。
VILLAGE VANGUEARD 読書地図
名古屋発祥の本屋と雑貨のセレクトショップ。
SUBWAY 野菜サンドイッチ地図
ファーストフードとしてはポイントの高い SUBWAY の地図。目の前で作ってくれます。
生そば富士そば地図
駅そば形態で生そばが供される感動的な立ち食いそば。本当は小田急グループの箱根そばが自分の中では一番なのですが、普段滅多に使わない小田急線沿いにしかないので富士そばを一押しさせていただきます。
昼も夜も PRONTO マップ
昼はカフェ、夜はバー営業と、おいしいとこ取りのカフェバー。一人でも二人でも大勢でもイケるので重宝してます。
Freshness Barger スローフーディングマップ
ちょっと手の込んだハンバーガーチェーンとしてはモスに続く二番手ともいえるハンバーガーチェーンの店舗地図。ただどこの店も狭くてゆっくり出来ないのが玉にきず。
りそな銀行節約マップ
今ではコンビニATMも便利になって、いつどこでもお金をおろすことが出来るようになりましたが、手数料を取られるのがしゃくなのでお出かけ先でもがんばって支店を探してみるマップ。
ドトールコーヒーのジャーマンドッグ探索図
出かけ先でちょっとすいたおなかを満たすのに最適なドトールコーヒーショップ地図。
ちょっとだけ技術情報

 ちなみに PHP で動かしましたが、ソースはこんなにシンプル。

<?php

require_once('geocoding/xml.php');

$addresses = file('geocoding/address.csv');
foreach($addresses as $address){
    $pieces_of_address = explode(",", $address);

        $handle = fopen('http://www.geocoding.jp/api/?v=1.1&q=' . urlencode ($pieces_of_address[1]), "rb");
        $xml = stream_get_contents($handle);
        fclose($handle);

    $data = XML_unserialize($xml);

if (array_key_exists('error', $data[result])){             //エラー時
    echo '--' . $pieces_of_address[0] . 'は見つかりませんでした<br />';
}elseif(array_key_exists('choices', $data[result])){    //重複時
    echo '--' . $pieces_of_address[0] . 'は候補が重複しています。<br />';
}else{                                                    //成功時
    if (array_key_exists('2', $pieces_of_address)){
        $caption = $pieces_of_address[2];
    }else{
        $caption = $pieces_of_address[1];
    }
    echo '--&googlemaps2_mark(' . 
        $data[result][coordinate][lat] . ',' . 
        $data[result][coordinate][lng] . ', map=barmap, title=' . 
        trim($pieces_of_address[0]) . ', caption=' . 
        trim($caption) . ', icon=anan);<br />';
}
sleep(5);
}

?>

 検索結果はいちいちチェックしていないので、ときたま位置がずれている物もありますが、それはご愛敬ということで。ビル名とかが混じると誤差を生じやすいようです。見つかり次第ぼちぼちと直していきます。

 副産物ですが、座標チェック用として目的の場所の緯度経度を検出するツールも作りました。これは JavaScript です。


--
March 21, 2009 Comments (2) Trackback (0)

えと・・・とりあえず、乙

公衆無線LANのアクセスポイントまっぷ、作ってちょ。


てか、Bフレッツ入ってても、
無線LANには、800円/月・・・
普通の人とは、100円しか変わらん・・・・

所詮、NTTか。

kaicho さん March 21, 2009 08:19 AM

アクセスポイントの住所か、正確な緯度経度が分かれば可能です。

たけだ さん March 22, 2009 12:05 PM
コメントする
(必須)
(必須)

  • 投稿ボタンは一度だけ押してください。
  • コメントスパム対策のためにやむなく検閲を設けています。サイト管理人がスパムでないことを確認の後にサイト上に反映させるため、コメントが表示されるようになるまで約一日程度お待ちください。
  • 投稿ボタンを押して反応が無くとも、「しばらくじっと我慢の子」でお願いします。