電子書籍の厳選無料作品が豊富!

質問させていただきます。

当方環境はPHP4+mysqlです。

郵便番号を入力して近隣のお店を検索するというシステムを構築したいのですが、どうやって構築するのか悩んでおります。
# お店の住所情報はmysqlDBに登録されており、任意に取得可能です。

郵便番号からどうやって近隣のお店かどうか判定するのか、サンプルなどあれば添えてご教授いただければと思います。

よろしくお願いいたします。

A 回答 (2件)

住所だけで、近隣のお店かどうか判定するのは難しいと思います。


住所の緯度と経度を調べてDBに住所と一緒に登録しておきます。
緯度と経度を調べるのは「ジオコーディング」といって、GoogleやYahoo
がWebのAPIを提供しているから、それを使うとよいでしょう。
※他にも「ジオコーディング」で検索するといろいろ見つかります
http://code.google.com/intl/ja/apis/maps/documen …
http://developer.yahoo.co.jp/webapi/map/openloca …

郵便番号から住所を検索するサービスも、自サーバーにインストールするパッケージとか
APIサービスが無料の物(自分でメンテナンスが前提)が結構みつかります。
http://developmentor.lrlab.to/postal/tutorial.html
http://zip.ricollab.jp/

郵便番号から求めた住所をジオコーディングして緯度・経度を出し、
お店の緯度・経度から距離を求めます。

距離の算出は、近距離ならば3平方の定理(L^2=X^2+Y^2)で十分です。
広域なら、球面三角方を使います(地球は丸いから)
http://gpscycling.net/fland/make/ckyoho.htm
http://www-seis1.kugi.kyoto-u.ac.jp/visual/grams …


こおいった、部品をPHPやJavascript等で作れば出来ると思います。
    • good
    • 0
この回答へのお礼

なるほど、非常に参考になりました。

確かにyyr446さんのおっしゃる手順でプログラミングすれば望むシステムを構築できそうです。
早速作成にとりかかります。

ありがとうございました!

お礼日時:2010/12/22 22:45

基本的にはNo1の回答者さんと同じですが、一つのアイディアとして回答しておきます。



「近隣」という言葉の解釈にもよりますが、郵便番号から住所を取得する事は既存のAPIなど使えばできますので、以下のように・・・

1.郵便番号入力

2.市町村名を取得

3.DBのLIKEを使って、住所フィールドから2で取得した市町村名が含まれるレコードを取得する。

という感じならば、「近隣=同一市町村」という処理ができると思います。まぁ、質問者さんが考えておられる「近隣」とは違うかもしれませんが・・・。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど、まだ仕様が確定していない部分もあるので「近隣」の定義がはっきりしていないのですが、DBレコード全てについて判定するのは処理速度上問題があるかもしれませんので、manimani2さんのいっしゃるようにSQLを利用して該当するレコードのみを抜き出すという処理が適していますね。

お礼日時:2010/12/22 22:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!