携帯でGoogleMapを手軽に表示するPHPクラス
皆さん、こんにちは。
笹亀です。
===
追記:みなさんからのたくさんのはてブをしていただけているので、せっかくなのでちょっと宣伝させてもらいます。
弊社の携帯コンテンツとして、携帯専用イベント支援サイト「あつまろ☆ねっと」というサービスを開始しました。「あつまろ☆ねっと(http://www.atmr.jp/)」は現在ベータ版ですが、ぜひぜひ利用してみてください。
後、恥ずかしながらPHPの本を出版することになりました。
ご興味のある方、気になる方、こちらもよろしくお願い致します^^
http://www.amazon.co.jp/exec/obidos/ASIN/4798114383/
===
遅くなりましたが、明けましておめでとうございます。
今年度もよろしくお願い致します。
先日ですが、毎月恒例の誕生日会を行いました。
メンバーの誰かが毎月誕生日を迎えるので、アシアルで毎月行っている行事のひとつです。
今月の誕生日(主役)は松田氏でした。今月もみんなで盛大にお祝いをしました。
ちなみに私の誕生日は先月の12月で、お祝いしていただきました^^
GooleMapはPC版でJavascriptを使用することで地図を表示して使用することが多かったですが、携帯用として使用するために特定の位置を画像として表示できるようになっています。今回はGoogleMapを携帯の地図として出力する方法を解説します。
まずは、特定の位置の地図を描画させたり設定をセットするクラスを作成します。
今回は、「GoogleMobileMapView」クラスとして作成しています。
次にGoogleMobileMapViewクラスファイルを読み込み、実行するためのスクリプトを作成します。
ここでは、私が知っている今までのアシアルのオフィスを示した場所を画像で表示しました。
今回は、「Jpeg」で表示しましたが、この他にも 「image_format」の引数の値を変更することで、画像の出力形式を指定できます。指定しない場合はGIF形式になります。
1:GIF 2:PNG 3:JPEG
緯度経度については、桁数を8桁~9桁にあわせる必要があります。
35.707215→35707215
139.762162→139762162
細かい設定などは、http://labs.anoncom.net/others/GoogleMap/MobileImage.htmlに記述されてます。ご確認ください。
作成したサンプルを実行すると以下のような地図が表示されます。
また、携帯でアクセスしたい場合は、
以下のQRコードを携帯で読みとりアクセスしてください。

このように携帯に向けても画像を手軽に無料で表示させることができます。
GoogleMapはこれからも、WebのAPIとしても力になってくれるものだと思います。
GoogleMapのようなAPIを上手に使うことで、Webアプリケーションの作成の幅も広がり、開発の手助けともなってくれると思います。
みなさんも是非、いろいろなAPIを利用してみてはいかがでしょうか。
最後に使用する際には、GoogleMapの利用規約に記述されている規約に違反しないようにお気をつけください。
http://www.google.com/intl/ja_jp/help/terms_maps.html
笹亀です。
===
追記:みなさんからのたくさんのはてブをしていただけているので、せっかくなのでちょっと宣伝させてもらいます。
弊社の携帯コンテンツとして、携帯専用イベント支援サイト「あつまろ☆ねっと」というサービスを開始しました。「あつまろ☆ねっと(http://www.atmr.jp/)」は現在ベータ版ですが、ぜひぜひ利用してみてください。
後、恥ずかしながらPHPの本を出版することになりました。
ご興味のある方、気になる方、こちらもよろしくお願い致します^^
http://www.amazon.co.jp/exec/obidos/ASIN/4798114383/
===
遅くなりましたが、明けましておめでとうございます。
今年度もよろしくお願い致します。
先日ですが、毎月恒例の誕生日会を行いました。
メンバーの誰かが毎月誕生日を迎えるので、アシアルで毎月行っている行事のひとつです。
今月の誕生日(主役)は松田氏でした。今月もみんなで盛大にお祝いをしました。
ちなみに私の誕生日は先月の12月で、お祝いしていただきました^^
GooleMapはPC版でJavascriptを使用することで地図を表示して使用することが多かったですが、携帯用として使用するために特定の位置を画像として表示できるようになっています。今回はGoogleMapを携帯の地図として出力する方法を解説します。
まずは、特定の位置の地図を描画させたり設定をセットするクラスを作成します。
今回は、「GoogleMobileMapView」クラスとして作成しています。
- //携帯でGoogleMapの画像をプリントするクラス
- class
GoogleMobileMapView{ //取得URLとクエリを保持する変数 private $geturl = 'http://maps.google.com/mapprint?tstyp=4'; private $query = ""; private $image_format = "1"; private $type = array("1"=>"gif","2"=>"png","3"=>"jpeg"); //画像を取得するためのURLをセットするメソッド public function setUrl($latitude,$longitude,$settings,$points = null) { //中心の位置がない場合はfalseを返す if( $latitude == "" || $longitude == ""){ return false; } //画像を取得するためのパラメータをセットしていく $this->query = $this->geturl . "&c=$longitude,$latitude"; if(!isset($settings["w"])) $settings["w"] = 200; if(!isset($settings["h"])) $settings["h"] = 200; if(!isset($settings["z"])) $settings["z"] = 0; $this->query .= "&r={$settings["w"]},{$settings["h"]}"; $this->query .= "&z={$settings["z"]}"; //出力形式をセット(デフォルトはGIF if(isset($settings["image_format"])) $this->image_format = $settings["image_format"]; $this->query .= "&image_format=" . $this->image_format; //複数のポイントを表示するのにも対応させる if(!is_array($points)) return true; foreach( $points as $point ){ if(!isset($point["latitude"]) || !isset($point["longitude"])) continue; if(!isset($point["iconid"]) ) $point["iconid"] = 15; $this->query .= "&l={$point["longitude"]},{$point["latitude"]},{$point["iconid"]}"; } return true; } //画像を出力するメソッド public function viewPicture() { $pic_type = $this->image_format; header("Content-type: image/" . $this->type[$pic_type]); if ($this->query != ""){ readfile($this->query); } } - }
次にGoogleMobileMapViewクラスファイルを読み込み、実行するためのスクリプトを作成します。
ここでは、私が知っている今までのアシアルのオフィスを示した場所を画像で表示しました。
- require_once
("./gooleMobileMapView.php"); - $points
= array(); - $points[]
= array('latitude' => 35707701,'longitude' => 139761787,'iconid' => 17); - $points[]
= array('latitude' => 35706847,'longitude' => 139762618,'iconid' => 18); - $points[]
= array('latitude' => 35706764,'longitude' => 139762515,'iconid' => 19); - $gmap
= new GoogleMobileMapView(); - $gmap->setUrl(35707215,139762162,array('w'
=> 240,'h' => 240,'image_format' => '3'),$points); - $gmap->viewPicture();
今回は、「Jpeg」で表示しましたが、この他にも 「image_format」の引数の値を変更することで、画像の出力形式を指定できます。指定しない場合はGIF形式になります。
1:GIF 2:PNG 3:JPEG
緯度経度については、桁数を8桁~9桁にあわせる必要があります。
35.707215→35707215
139.762162→139762162
細かい設定などは、http://labs.anoncom.net/others/GoogleMap/MobileImage.htmlに記述されてます。ご確認ください。
作成したサンプルを実行すると以下のような地図が表示されます。
また、携帯でアクセスしたい場合は、
以下のQRコードを携帯で読みとりアクセスしてください。
このように携帯に向けても画像を手軽に無料で表示させることができます。
GoogleMapはこれからも、WebのAPIとしても力になってくれるものだと思います。
GoogleMapのようなAPIを上手に使うことで、Webアプリケーションの作成の幅も広がり、開発の手助けともなってくれると思います。
みなさんも是非、いろいろなAPIを利用してみてはいかがでしょうか。
最後に使用する際には、GoogleMapの利用規約に記述されている規約に違反しないようにお気をつけください。
http://www.google.com/intl/ja_jp/help/terms_maps.html
コメント
コメントフォーム
トラックバック
最近の記事
- 【AS3】「ActionScript3の、こんなときどうするの??」 [2010年02月09日 : 橋本章史]
- Twitter-APIを使ってみました [2010年02月05日 : 中川善樹]
- PHPの名前空間と主要フレームワークの対応について [2010年02月04日 : 小川雄大]
- HDDのフォーマットには時間がかかるんです [2010年02月01日 : 岡本雄樹]
- GoogleChrome に Firebug extension をいれてみた + よさげなextensionまとめ [2010年01月26日 : 松田惇]
- 社員旅行で作成した陶磁器が完成しました! [2010年01月21日 : 阿部恵]
- PHPでコマンドライン・アプリケーションを簡単に作成する [2010年01月20日 : 小川雄大]
- kvmでwindows7を入れてみました [2010年01月20日 : 門脇優児]
- ratproxyとSelenium IDEを組み合わせたWebアプリケーションテスト [2010年01月15日 : 川原美和]
- lsyncdでファイルを同期してみよう [2010年01月13日 : 熊谷裕志]



Google側から返答等はありませんが、今後携帯への表示はNGになる可能性がありますので、注意が必要かもしれません。
そこまで詳しくは知りませんでした。
参考になる情報ありがとうございました。
アクセスが集中するサイトなどでは、通常のGoogleMapAPIもGoogleの許可を得ないと制限を掛けられたりされてしまうことはよく聞きます。
無料で使用させていただいたいるので、制約はたしかに必要な処置だとは思いますが、ゼンリンさんも認めてもらえて、ある程度使用させていただける状態になっていると私個人としてはうれしいのですが^^;
ちなみに携帯版のGoogleMapはどこのデータを使っているんですか
また、あえてゼンリン以外のデータを使っている理由を
ご存じでしたら教えて頂けないでしょうか? >名無しさん
>ゼンリンさんも認めてもらえて、ある程度使用させて
>いただける状態になっていると私個人としてはうれしいのですが^^;
たしかに自分も広告入りでもいいので正式に使用許可
ほしいです。なんとかならないですね…
の載っているコードの20行目、'w'は'h'の誤りのようです。
本文の修正をさせていただきました。
たしか以前からあるhttp://maps.google.com/mapdataのAPIは個人使用に限定されていたような気がします。
もし大丈夫なら非常に嬉しいのですが・・・