2006年04月11日
Google Maps Overlay 改 その2(透過地図衛星画像対応版)
Google Maps Overlayを参考に、Google Mapsが表示できる範囲全てをオーバーレイできるようにしたGoogle Maps Overlay 改というものを以前作ったが、さらに拡張して衛星画像と透過地図も表示できるようにしてみた。
Google_Maps_Overlays_20060907.zip
(2006-09-07: Overlay表示範囲の上限を設定可に)
(2006-04-28: Google Mapsの地図バージョンアップに対応)
(使い方は以前のエントリ参照)
(2006-09-17:画像が存在しない場合に対応したバージョンを作成)
GE Maniacsでも取り上げられていたこの場所も
すっかりあらわに。
透過地図は整備されているところがかなり限られるけど、たとえばロンドンはこんな感じ。
オーバーレイされた画像の透過率を簡単に調整できるGoogle Earthでは、透過地図を重ねるのはあんまり意味ないかもしれない。
追記 2006-04-14:同じような手法でYAHOO MAPSと連携できないか探っているのだが、これはけっこう大変そうだ。 GE Maniacsで提案されている方法でも、要するにGoogle Earthで「どれだけ移動したか」というのは緯度経度で表される訳で(というか、Google Earthから外部CGIに渡せるパラメータは「現在表示している範囲の緯度経度」だけなのだが)、結局のところはその「緯度経度」→「YAHOO MAPSの地図URL」の変換をすることになる。この変換式はYAHOO MAPSの裏で動くJavaScript群(http://map.yahoo.co.jp/beta/conversion.jsなど)に含まれているのだが、これが結構ややこしい。
地図URLの生成そのものは http://map.yahoo.co.jp/beta/cero.js の511行目あたりにあるが、そこからfunctionを追って行くと、ぼくがオブジェクト指向なJavaScriptに慣れていないこともあって、かなり難解。なんにせよGoogle Mapsみたいにlog tan (π/4 - φ/2)一発、というわけにはいかない。
仮に無理やり移植したとして、JavaScript中に頻出しているなぞの定数をそのまま使い回したコードを配布すると、これはおそらくYahooの利用規約に違反する。コードを完全に理解し、自力で定数を導けば問題ないだろうが…
というわけでやって出来ないことはないかもしれないけど萎え萎え、というのがいまの正直な心境です。 Posted by jiro at 2006年04月11日 16:17 | トラックバック (1)
GE Maniacs管理人の茜丸と申します。どもです。うちのサイトにトラックバックされているのをみて、設置してみました。Yahoo Maspも構造は解析したのですが、応用できんものかなぁと思ったり
Posted by: 茜丸 at 2006年04月12日 19:04設置してみました。非常にいいですね。Yahoo Mapsに応用できないかなと思ったり・・・
Posted by: 茜丸 at 2006年04月12日 19:06設置してみました。非常にいいですね。Yahoo Mapsに応用できないかなと思ったり。
Posted by: 茜丸 at 2006年04月12日 19:06ヨーロッパ(フランス、ドイツ、イタリア、スペイン)のマップが公開されましたが、これでは見られないようですね。海外のGoogle Maps Overlayでも見られませんでした。なにか違うのでしょうか?
Posted by: ぽ at 2006年04月27日 23:07gmol.kmlの9行目、cgiに渡しているバージョン情報を
v=w2.11
というように最新のものにしてやると表示できるようになります。ダウンロードファイルもアップデートしておきます。
Google MapsがVersion 2.12になり、マップが更新されました。あと、今ちょっと気になっているオーバーレイとオーバーレイとの間の隙間を埋めようと挑戦してみています。
Posted by: akanemaru at 2006年05月19日 19:47お久しぶりです。随分と立ちました。
今は、PHPの勉強をし、大分いろいろと扱えるようになってきました。
本日は報告です。
gm.cgiがgoogle mapsの仕様変更に伴い、使用できなくなりました。2点の問題中、URLエンコードされてしまうのを回避するために、httpqueryタグを使って問題解決しましたが、zoom levelの取り扱いが、もっともズームしたときが19になる つまり今までと逆になり、使えなくなってしまいました。