API 1.11からAPI 3.0へのwidgetの使用方法の変更点

実行結果

次の例では、地図にマーカを表示します。
API3.0ではAPI1.11にあったユーザレイヤ、アイコン生成は必要ありません。

Your borwser is not supporting object tag. Please use one of the latest browsers.
Go to ./apisample/widget/marker_default.html

解説

地図にマーカを表示するには、地図表示の変更点に加え、
ZDC.Markerクラス、ZDC.MapクラスのaddWidget()を利用します。

アイコンを追加するには

アイコンを追加する手順と、対応するクラス/メソッド示します。

手順 説明 1.11クラス/メソッド 3.0クラス/メソッド
1 ユーザレイヤ作成 ZdcUserLayer -
2 アイコンを生成 ZdcIcon -
3 マーカ生成 ZdcMarker ZDC.Marker
4 ユーザレイヤにマーカ追加 ZdcUserLayer/addMarker -
5 地図上に重畳 ZdcMap/addUserLayer ZDC.Map/addWidget()

ユーザレイヤ、アイコンを生成するには

API3.0ではユーザレイヤ、アイコンを生成する必要はありません。

/* API 1.11での生成方法 */
/* ユーザレイヤを作成する */
var userlay = new ZdcUserLayer();
userlay.setLayerScale(10,18); // レイヤを1/5万から1/1500で動作させる
userlay.setLayerType('auto'); // 縮尺レベル変更時にレイヤを自動削除する
/* アイコンを生成する */
var icon = new ZdcIcon(); // デフォルトのアイコンを利用する

マーカを生成するには

API1.11ではアイコン、マーカを別々に作成し、紐づけていました。
API3.0では、マーカ作成の引数にアイコンの代わりとなるマーカデザインを指定できます。

/* API 1.11での生成方法 */
/* マーカで緯度経度とアイコンを紐付ける */
var mark = new ZdcMarker(
    new ZdcPoint(139.6933217 ,35.6868817),
    icon //生成したアイコンを指定
);

/* API 3.0での生成方法 */
/* マーカを作成 */
var mrkopt = {
    color : ZDC.MARKER_COLOR_ID_BLUE_S, //マーカデザインを指定
    number : ZDC.MARKER_NUMBER_ID_STAR_S  //重畳画像を指定
}; 
var mrk = new ZDC.Marker(latlon, mrkopt);

地図にユーザレイヤを追加するには

API1.11ではマーカをユーザレイヤに追加した上で、 地図にユーザレイヤを追加しました。
API3.0ではZDC.MapクラスのaddWidget()を実行することで地図上にマーカが追加されます。

/* API 1.11での追加方法 */
/* ユーザレイヤにマーカを追加する */
userlay.addMarker(mark);
/* 地図にユーザレイヤを追加する */
map.addUserLayer(userlay);

/* API 3.0での追加方法 */
/* マーカを追加 */
var map = new ZdcMap();
map.addWidget(mrk);

ソースコード

<!DOCTYPE html>
<html>
<head>

<meta charset="UTF-8">
<script src="//test.api.its-mo.com/v3/loader?key=JSZddc5111626c8|Zo4wz&api=zdcmap.js,control.js&enc=UTF8" type="text/javascript"></script>
<script type="text/javascript">

    var map, mrk,
        lat = 35.6778614, lon = 139.7703167;

    function loadMap() {
        var latlon = new ZDC.LatLon(lat, lon);
        map = new ZDC.Map(
            document.getElementById('ZMap'),
            {
                latlon: latlon,
                zoom: 9,
                mapType: ZDC.MAPTYPE_HIGHRES_LV18
            }
        );

        /* スケールバーを作成 */
        map.addWidget(new ZDC.ScaleBar());

        /* 通常のコントロールを表示 */
        map.addWidget(new ZDC.Control());

        /* マーカを作成 */
        mrk = new ZDC.Marker(latlon);

        /* マーカを追加 */
        map.addWidget(mrk);
    }

</script>
</head>

<body onload="loadMap();">
    <div id="ZMap" style="border:1px solid #777777; width:750px; height:500px; top:0px; left:20px; position:absolute;"></div>
</body>
</html>