geocodingAPI

40 views
Skip to first unread message

Fucky

unread,
Sep 13, 2006, 9:57:20 PM9/13/06
to Google-Maps-API-Japan
どうも
ひとつみなさんにお尋ねしたいことがあります。

地名を入力するとそこに地図が移動するような機能を設置しようとしているのですが、
Googlemapsでは実装されているのに、APIが公開されていないことを知りました。

そこで
http://www.geocoding.jp/api/
を知ったわけですが、

フォームから住所や地名を受け取り、http://www.geocoding.jp/api/q=
+ form.value
で返されるxmlから地図上に表示。

このような実装された方いませんか?

hamichan

unread,
Sep 13, 2006, 11:00:34 PM9/13/06
to Google-Maps-API-Japan
やりました。

但し、回避しないといけない問題があります。
それはJavaScriptのセキュリティ問題です。

同一ドメインからでないとXMLファイルを読み込むことができません。
それを回避するためにcgiを設置しました。

このcgiがgeocoding.jpへデータの依頼をし、得たデータをそのまま表示します。
具体的には以下のようなものを作りました。

------------------------------------------------------------------------

#!/usr/bin/perl


print "Content-Type: text/xml\n\n";

#フォームから地名を取得
use CGI;
my $q = new CGI;
my $locate = $q->param('q') or die;

#XMLデータを取得
my $url = "http://www.geocoding.jp/api/?q=$locate";
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent('');
$ua->timeout(5);
my $response = $ua->get($url);
unless ($response->is_success) {
die 'file get error';
}

#取得したXMLを出力
print $response->content;

------------------------------------------------------------------------

このプログラムを適当な名前のcgi(例えばxml.cgi)としてサーバにアップすればXMLを取得できるはずです。

使用するときは
http://www.geocoding.jp/api/?q=*******
の代わりに
http://www.example.com/xml.cgi?q=*******
としてXMLを取得すればいいはずです。
(www.example.com/xml.cgiはあなたのサーバのURLに置き換えてください。)

Fucky

unread,
Sep 13, 2006, 11:17:28 PM9/13/06
to Google-Maps-API-Japan
ありがとうございます。
>同一ドメインからでないとXMLファイルを読み込むことができません。

僕はここで手が止まっていたんですよ。JavaScriptのセキュリティだったんですね。

ソースまで!
ありがとうございます!感謝です。

itoman

unread,
Sep 14, 2006, 11:52:41 PM9/14/06
to Google-Maps-API-Japan
Fuckyさん、こんにちは。

参考までに、こんなページを作ってみました。
http://www.tizdes.net/test_geocoding.php

自分のサーバにおいたプログラムで
http://www.geocoding.jp/api/
に対してリクエストを投げます。

戻ってきたxmlから座標を取り出せばその位置が
表示されます。
PHPだとfsockopen()関数等を使います。

サンプルは、「成功時」のみ処理しています。
「重複時」「エラー時」は、アラートで逃げています。
サンプルですので。。。

ご参考まで。。

Fucky

unread,
Sep 15, 2006, 12:15:46 AM9/15/06
to Google-Maps-API-Japan
ありがとうございます。
僕もPHPで実装しているもので、非常に参考になります。

重複時をどう処理するかもいろいろ考えようですね。

naruko

unread,
Sep 15, 2006, 2:08:55 AM9/15/06
to Google-Maps-API-Japan
私も住所から経緯度に変換してGooglemapsAPI上に表示したいと
考えております。geocoding.jpは、GooglemapsAPIではなく、
GooglemapsをHackしたもののようですので、使用するのは
自己責任かと思いますが、実際のところ、geocodingAPIを
使っても問題はないでしょうか?

itoman

unread,
Sep 15, 2006, 6:35:01 AM9/15/06
to Google-Maps-API-Japan
皆さん、こんにちは。

ご参考までに、geocoding.jpさんを使わないサンプルです。
GoogleMapsAPIとは、直接関係ないので詳細は控えます。

http://www.tizdes.net/tizdes00003.php
(番地までの検索となります。)

ちなみに、現段階では東京都のデータしか入れていません。

ご参考まで。。

Pearl ROAD

unread,
Sep 15, 2006, 8:40:04 PM9/15/06
to Google-Maps-API-Japan
こんにちは PearlROAD です。
Google の公式な手法でちょうど実装したところですのでご紹介します。
Mapsと同様β版ですが、
「Google AJAX Search API」
http://code.google.com/apis/ajaxsearch/
を使用するものです。

実装例:
http://members.jcom.home.ne.jp/wa-ga-ya/map/map.htm

中央上部の[明石市人丸町2−6][住所検索]
の箇所です。
住所だけでなく駅名やお城の名前なんかでもヒットしますが不確かです。

いろいろ機能を付けすぎてソースは複雑怪奇ですみません。
質問があればこの場でどうぞ。

因みに、Maps Api本体の関数にもあるようですが、残念ながらまだ日本はサポートされていません。

Reply all
Reply to author
Forward
0 new messages