Bing Maps で地図を使う(2)

プログラミング

Bing Mapsによる地図の表示位置や種類などの指定方法をご紹介します。


Bing Maps V8 Web Control による地図の表示

Bing Maps V8 Web Control を使用します。地図を表示する方法は Bing Maps で地図を使う(1)を参照してください。

Location オブジェクトの作成

地図の中心位置を指定するために Locationクラスのオブジェクトを作成します。 第1引数は緯度、第2引数は経度を指定します。

var position = new Microsoft.Maps.Location(38.479394, 137.724609);

Mapオブジェクトの作成

Mapクラスのオブジェクトを作成します。コンストラクタの第2引数内にパラメータを指定します。

var map = new Microsoft.Maps.Map('#bing_map',
    {
        credentials         : "API キー",
        center              : position,
        mapTypeId           : Microsoft.Maps.MapTypeId.aerial,
        zoom                : 5,
        labelOverlay        : Microsoft.Maps.LabelOverlay.hidden,
        showLocateMeButton  : false,
        showMapTypeSelector : false,
    }
);

各パラメータの内容は以下のとおりです。

center 地図の中心位置(Locationクラスオブジェクト)
mapTypeId 地図の種類(MapTypeId)
zoom ズームレベル
labelOverlay ラベルの表示(visible)/非表示(hidden)
showLocateMeButton 「現在地を検索」ボタンの表示(true)/非表示(false)
showMapTypeSelector マップ種類セレクトボックスの表示(true)/非表示(false)

他のパラメータについては MapOptions ObjectViewOptions Object を参照してください。

地図の種類

mapTypeId で表示する地図の種類を指定します。
デフォルトは Microsoft.Maps.MapTypeId.road でロードイメージ。今回指定したのは Microsoft.Maps.MapTypeId.aerial で航空写真です。

MapTypeId.road (ロードイメージ)
MapTypeId.aerial (航空写真)
 

ズームレベル

zoom で地図のズームレベル(縮尺)を指定します。
ズームレベルは 1から20までの数値で小さいほど広域、大きいほど詳細な地図となります。尚、最大ズームレベルは場所ごとに異なります。例えば、詳細な地図がレベル19までしか存在しない場合もあります。

ズームレベル16
ズームレベル20

ラベル

地図上に表示される文字情報です。LabelOverlay.visible で表示、LabelOverlay.hidden で非表示となります。デフォルトでは表示されます。

LabelOverlay.visible(ラベルを表示)

操作ボタン

地図上に表示される操作ボタンを非表示にできます。今回は以下のボタンを非表示にしています。

実行サンプル

HTMLファイルのソースコードです。ブラウザで実行すると地図が表示されます。
※ APIキーを記述してください。

<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="https://www.bing.com/api/maps/mapcontrol"></script>
<script type="text/javascript">
function init() {
    var latitude  = 38.479394;  // 地図中心緯度
    var longitude = 137.724609; // 地図中心経度

    // 地図の中心位置
    var position = new Microsoft.Maps.Location(latitude, longitude);

    // Mapオブジェクトの作成
    var map = new Microsoft.Maps.Map('#bing_map',
        {
            credentials         : "APIキー",
            center              : position,
            mapTypeId           : Microsoft.Maps.MapTypeId.aerial,
            zoom                : 5,
            labelOverlay        : Microsoft.Maps.LabelOverlay.hidden,
            showLocateMeButton  : false,
            showMapTypeSelector : false,
        }
    );

}
</script>
</head>

<body onload="init();">
<div id="bing_map" style="width:640px; height:400px;"></div>
</body>
</html>

コメント

タイトルとURLをコピーしました