M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年11月26日 22:03

Adobe Creative Suite 出力対応店一覧をGoogle Mapsで表示させる(15)

このエントリーをはてなブックマークに追加 mixiチェック

アドビのCS5対応プリントショップのリストのページから、Google Mapsに表示させるやつの15回目。

前回は、Google Maps APIでうまくジオコーディングできない住所を特定し、それぞれどのようになっているか解析してみました。

今回は、京都市専用のジオコーダ「ジオどす」を使ってみて、京都市の住所のジオコーディングをやってみたいと思います。


まず、「ジオどす」(http://http://geodosu.com/)に行きます。

Geodosu01

右側の「APIキー取得」を選択します。

Geodosu02s

所定の入力をして規約読んでチェックつけて「APIキー発行」ボタンを選択します。

Geodosu03

これで、APIキーが書かれた電子メールが届きますので、APIキーを確認して、下記の様なプログラムを書いてみます。

Filename: test15.pl

#!/usr/bin/perl
 
use strict;
use warnings;
use utf8;
use YAML;
use Encode;
use WebService::Simple;
 
my $geo = WebService::Simple->new(
    response_parser => 'JSON',
    base_url => 'http://api.geodosu.com/v2/geodosu2?',
    param    => {
      apikey     => '●●',
      output     => 'json',
      preprocess => 'true',
    },
);
 
my $address = '京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F';
my $res = $geo->get( 'json', { address => $address } );
my $val = $res->parse_response();
print Dump( $val );
 
exit;
 
__END__

実行してみると……

$ perl test15.pl
---
result:
  addresses:
    detected:
      kana: まつばらどおり からすま  さがる 
      kanji: 松原通烏丸下ル
      roman: matsubara-dori karasuma sagaru
    input: 京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F
    pre_processed: 京都市下京区烏丸町4
  coordinates:
    datum: {}
    estrange:
      lat:
        - 34.997674
        - 34.997674
        - 34.998886
        - 34.998886
        - 34.997674
      lon:
        - 135.759294
        - 135.760002
        - 135.760002
        - 135.759294
        - 135.759294
    estrange_ne:
      lat: 34.998886
      lon: 135.760002
    estrange_sw:
      lat: 34.997674
      lon: 135.759294
    point:
      lat: 34.99828
      lon: 135.759703
  copyright: ジオどすⅡ京都通り名ジオコーダー copyright 2009 All rights reserved by ジオどす・プロジェクト
  geocoded: 1
  geocoder: geodosu2
$

これの、

    point:
      lat: 34.99828
      lon: 135.759703

が「ジオどす」でジオコーディングされた座標です。

あとは、このプログラムを今までのスクリプトに組み込めばいいのですが、その前に得られた座標の妥当性を確認しましょう。

得られた座標を「34.99828,135.759703」の様にコンマでつないで、Google Mapsの入力欄に入れてみます。

Geodosu04s
▲ちょっと遠いよね

ちなみに、Google Mapsで、「京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F」から、通り名とビル名を取り去った「京都府京都市下京区五条烏丸町407-2」で検索したらこんな感じ。

Geodosu05s
▲ドンピシャ

……ジオどすのほうが正確じゃないってことで、ジオどすを使わない方向でいきたいと思います。

次回は、座標が取得できない住所が3か所も出ちゃったので、これをどのようにごまかすか、それには、辞書を用意しよう! ていうことをやってみたいと思います。

投稿 大野 義貴 [GoogleMaps] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3418

コメント(2)

ジオどすの上田と申します。
ジオどすをお使い頂きまして、どうもありがとうございます。

「京都府京都市下京区烏丸松原下ル」だけでは記事の目的地だけでなく、その周辺すべてその通り名表記ですので、ジオどすはそれらの代表点を返しています。そもそも通り名はアバウトな表記でピンポイントの場所を表すものではないので、そのあたり、ご容赦ください。(^^;)

ちなみに
>五条烏丸町407-2烏丸KT第2ビル2F」から、通り名とビル名を取り去った「京都府京都市下京区五条烏丸町407-2」で検索
と書かれていますが、「通り名住所」+「郵便住所」の複合表記の場合、通り名をカットすれば郵便住所になりますので、Googleなどのジオコーダでピンポイント検索ができます。
ジオどすで提供している、「ジオコーダ前処理API」はまさにそのためのAPIで、「通り名+郵便住所のときは通り名をカット」「ビル名らしきものがあればカット」を自動でやるようにしてます。ぜひお試しください!

今後ともジオどすをどうぞよろしくお願いします。

ジオどす
開発担当:上田

上田さん:

ジオどすのサービスをご提供いただきありがとうございます。

住所からジオコーディングする業務で、京都市内の住所の通り名部分をはずすとGoogleのジオコーダに通るという経験をしていたので、手動ではずす手続きを紹介してみましたが、今あらためてジオどすのAPIを見ますと、確かに「ジオコーダ前処理API」がありますね。

http://geodosu.com/ja/geodosu2-api.html#preprosessor_api

今度実際に使って見て、組み込んでみたいと思います。

コメントする