ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


php-tool-box:google-maps-static-api

PHPでGoogle Static Maps APIを使うサンプル


地図を画像として動的に生成できるGoogle Static Maps API(名前がいつの間にか微妙に変わっている)。携帯向けの地図系サービスを作るのに便利そう。PHPでも簡単に使えた。

しかも、いつの間にかKEYが不要になっていた。太っ腹なのか、プレミアを推進するための布石なのか。:-x

サンプル

ソースコード

<?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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki