php-tool-box:google-maps-static-api
PHPでGoogle Static Maps APIを使うサンプル
地図を画像として動的に生成できるGoogle Static Maps API(名前がいつの間にか微妙に変わっている)。携帯向けの地図系サービスを作るのに便利そう。PHPでも簡単に使えた。
しかも、いつの間にかKEYが不要になっていた。太っ腹なのか、プレミアを推進するための布石なのか。
サンプル
ソースコード
<?php //@see http://code.google.com/intl/en/apis/maps/documentation/staticmaps/ $params = array( 'center' => '38,137', //マーカーや道順の表示がある場合は省略可 'zoom' => 5, //マーカーや道順の表示がある場合は省略可 //'maptype' => デフォルトはroadmap 'sensor' => 'false', ); //PC か携帯か(iPhone/AndroidはPC扱いで) $pcFlg = true; if ($pcFlg) { //PC $params['size'] = '400x460'; //$params['format'] = デフォルトはPNG } else { //携帯 $params['size'] = '240x320'; $params['format'] = 'jpg-baseline'; //プログレッシブでないJPEG $params['mobile'] = 'true'; } $qs = http_build_query($params); // マーカー(緯度経度でも可(例:'38.1,137.5')) $locations = array( '札幌', '仙台', '東京', '名古屋', '大阪', '広島', '福岡', ); //$locations = false; if ($locations) { //マーカーの色の選択肢(0xFFFFCC形式でも可) $colors = array( 'red', 'blue', 'orange', 'green', 'gray', 'yellow', 'purple', 'white', 'brown', //'black', 少し見辛い ); foreach ($locations as $i => $location) { //色はローテーションにしてみた $qs .= getMarkerParam($colors[$i % count($colors)], $i, $location); } } // 沖縄 unset($params['center']); //中心地点は指定しないと自動で設定される $params['size'] = '150x150'; $qs2 = http_build_query($params); $qs2 .= getMarkerParam('white', count($locations), '那覇'); function getMarkerParam($color, $seqNo, $location) { //ここではやってないが、同じマーカーで複数のlocationを指定することもできる $markers = array( 'color:' . $color, 'label:' . (chr(ord('A') + $seqNo)), //使えるのはA~Zと0~9 $location, ); return '&markers=' . urlencode(implode('|', $markers)); } function getUrl($qs) { $qs = htmlspecialchars($qs, ENT_QUOTES); return 'http://maps.google.com/maps/api/staticmap?' . $qs; } ?> <div style="position:relative"> <img src="<?php echo getUrl($qs) ?>" alt="地図" style="position: absolute" /> <img src="<?php echo getUrl($qs2) ?>" alt="沖縄" style="position: absolute" /> </div>
php-tool-box/google-maps-static-api.txt · 最終更新: 2010/02/14 22:31 by dgbadmin