====== PHPでGoogle Static Maps APIを使うサンプル ====== {{http://maps.google.com/maps/api/staticmap?center=38%2C137&zoom=5&sensor=false&size=400x460&markers=color%3Ared%7Clabel%3AA%7C%E6%9C%AD%E5%B9%8C&markers=color%3Ablue%7Clabel%3AB%7C%E4%BB%99%E5%8F%B0&markers=color%3Aorange%7Clabel%3AC%7C%E6%9D%B1%E4%BA%AC&markers=color%3Agreen%7Clabel%3AD%7C%E5%90%8D%E5%8F%A4%E5%B1%8B&markers=color%3Agray%7Clabel%3AE%7C%E5%A4%A7%E9%98%AA&markers=color%3Ayellow%7Clabel%3AF%7C%E5%BA%83%E5%B3%B6&markers=color%3Apurple%7Clabel%3AG%7C%E7%A6%8F%E5%B2%A1&.png?}}\\ 地図を画像として動的に生成できるGoogle Static Maps API(名前がいつの間にか微妙に変わっている)。携帯向けの地図系サービスを作るのに便利そう。PHPでも簡単に使えた。 しかも、いつの間にかKEYが不要になっていた。太っ腹なのか、プレミアを推進するための布石なのか。:-x ===== サンプル ===== [[http://0-oo.net/sam/google-mapper/static-api.php|Google Static Maps APIをPHPで使うサンプル]] ===== ソースコード ===== '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; } ?>
地図 沖縄