携帯で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
コメント
コメントフォーム
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













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