freshmeatを見ていたらこんなのが。
freshmeat.net: Project details for PHP GoogleMapAPI
Google Maps APIをPHPだけで(JavaScriptを意識させること無く)使おうというのが主旨のようです。GoogleMaps用JavaScriptジェネレーターといったところでしょうか。
とりあえず、mySQLにテーブル作る。
CREATE TABLE GEOCODES (
address varchar(255) NOT NULL default '',
lon float default NULL,
lat float default NULL,
PRIMARY KEY (address)
);
これ、何に使うのかと思ったら住所からひっぱてきた緯度・経度を自前でキャッシュしておくために使うんですね。「住所から緯度・経度を得る」のは、[Yahoo geocode API]を利用しているそうなので、これを[
Digital Life Innovator: 日本の住所のGeocoding]等を利用するようにすると、うまく日本の住所からの変換が使えるような気がします。(#追記:下の追記で対応させてみました)
とりあえず、サンプルをそのまま動かしてみる。
・
PHP GoogleMapAPI サンプル (
ソース)
どこやねん…ってネブラスカ州ですか、そうですか。昔、archieでファイル検索してた頃の接続先ってネブラスカだったような気がするぞ、懐かしい。
とりあえず、知らないところじゃ面白くないので知ってる場所にしてみよう。
・
適当に書き換えてみて東京の地図を表示 (
ソース)
・
googlemapsapi.inc.php
12月からGoogle Maps APIの日本地図の測地系が世界測地系に変わるそうなので、このまま放っておくと地図がずれちゃうと思うので、ムリヤリ世界測地系を指定しています。APIキーに測地系オプションを付加するなんて邪道です。本来なら通らなくてもおかしくないので、 [GoogleMapAPI.::getHeaderJS]を書き換えるのが筋でしょう。
てなわけで、JavaScriptを全く意識することなく使えるのがいい事なのか悪い事なのかよくわからないけど、JavaScriptを1行も書くことなくお手軽に扱えるという点で、私のようなヘタレスクリプターにはいい事なのかも。
Firefox1.5RC2で見ると、インフォメーションウインドウの中の日本語が縦書きになってるんだけど、なんで?(頭の文字が半角英数字だと正しく表示されるようなのでURLを1行目にした)
#追記
[
Digital Life Innovator: 日本の住所のGeocoding]のジオコーダーを使って、住所から緯度経度を取得し、表示するようにしてみました。
GoogleMapAPI::geoGetCoordsを改変
んで、できたのがコレ。
・
住所から緯度経度を調べてマーカーを設置して地図を表示 (
ソース)
多少ずれていますが、これはシステム上、仕方ありません。
#追記 (2006/12/9)
Googleが正式にジオコーディングをサポートしたようです。
GoogleMaps APIのジオコーディングが日本でも開始