symfonyでGoogle Map(グーグルマップ)を使う
Posted on 6月 1st, 2007 by sudabon
SymfonyでGoogleMapを使う方法を紹介します。いろいろ方法はあるのだろうが、一番手っ取り早くて、JavaScriptを書かなくても利用できる方法を紹介します。
具体的には、PHP Google MAP APIクラスライブラリを利用します。
PHP GoogleMapAPIでクラスライブラリが公開されており、これをダウンロードしてSymfonyの/myproject/apps/myapp/lib/におき、該当するモジュールのaction.calss.phpでrequireしてパラメータをセットします。
例えば、下記のような感じです。各行の意味はだいたいわかると思いますが、詳細はクラスライブラリのソース内に記載(英語)がありますので、そちらを参照してください。
“actions.class.php”
require('GoogleMapAPI.class.php'); $this->map = new GoogleMapAPI(); $this->map->setHeight('400px'); $this->map->setWidth('400px'); $this->map->enableMapControls(); $this->map->enableZoomEncompass(); $this->map->enableOverviewControl(); $this->map->enableSidebar(); $this->map->setBrowserAlert( 'お使いのブラウザでは地図を表示することができません。' .'Internet Explorer 6.0以降か、' .'Firefox 1.0以降をおすすめします。'); $this->map->setJSAlert('お使いのブラウザではJavascript' .'に対応していないか、Javascript がオフになっています。' .'Javascript の動くブラウザでないと地図は表示できません'); $this->map->setInfoWindowTrigger('mouseclick'); $this->map->disableDirections(); $this->map->addMarkerByCoords($lat, $lng, $title, $html);
また、テンプレートファイルには表示するためのコードを記述します。
“indexSuccess.php”
$map->printSidebar() $map->printMap()
さらに、当然のことながら、Google MAPはJavaScriptを使っているので、HTMLのheadにJavaScriiptのパス設定が必要です。
“template.php”
$map->printHeaderJS() $map->printMapJS()
実際に実装した結果は以下です。
Filed under: Webフレームワーク, Webサービス

