マップオブジェクト
マップオブジェクトのタイプ
Maps API にはオブジェクトモデルが付属しています。このモデルを使用すると、マップ上のオブジェクトを簡単に整理できます。 API では 、makers 、spatials、 groupの 3 種類のオブジェクトが区別されます。
マーカー は、地図上の位置を視覚的に示すオブジェクトです。そのため、各マーカーは、そのマーカーが固定されている地理的なポイント(緯度および経度)によって定義され、アイコンが含まれています。 マップをパンすると、マップ上のマーカーの位置が変更されますが、マップのズーム レベルを変更しても(ズームインまたはズームアウトした場合でも)、マーカーアイコンのサイズは一定のままです。
API には、さまざまなシナリオに対応できる 2 種類のマーカーが用意されています。
- 通常のマーカー (
H.map.Marker
) - DOM マーカー (
H.map.DomMarker
)
詳細について は、「マーカーオブジェクト」を参照してください。
Spatials (spatials objects、このガイドでは geo shapes とも呼ばれます ) は、円、長方形、ポリライン、およびポリゴンで、マップ上の領域をマークするために使用できます。 Spatials
オブジェクトは、地理的なポイントのセットによって定義されます。 ディスプレイ上の形状の位置が地理的位置を忠実に反映するように、マップのパンやズームに応じて点が移動および拡大縮小されますSpatialsオブジェクトには、スタイル情報が含まれています。この情報によって、アウトラインのトレース方法およびその塗りつぶし方法 ( 閉じたシェイプの場合 ) が決まります。
Maps API では、Spatialsオブジェクトを表す次のクラスが提供されています。
- ポリライン (
H.map.Polyline
) - ポリゴン (
H.map.Polygon
) - 円 (
H.map.Circle
) - 四角形 (
H.map.Rect
)
詳細について は、「ジオシェイプ」を参照してください。
オーバーレイ は、マップ上の長方形の領域をビットマップイメージで覆い、一連の地理的なポイントで定義されたオブジェクトです。 イメージは、手続き的に生成することも、サーバーから取得した静的ビットマップにすることもできます。
詳細について は、オーバーレイを参照してください。
グループ は、子オブジェクト ( マーカーまたは空間、サブグループ ) のコレクションを保持できる論理コンテナです。 グループを使用すると、各オブジェクトを個別に操作することなく、アトミック操作でマップオブジェクトのセット全体を簡単に追加、削除、表示、または非表示にできます。 さらに、グループを使用すると、そのグループに含まれているすべてのオブジェクトを含むバウンディング ボックスを計算し、グループの子オブジェクトによって送出されたイベントをリッスンできます。
オブジェクトの追加と削除
各マップ オブジェクト タイプは API のクラスに対応します。 このようなクラスの新しく作成されたインスタンスはマップ上に自動的には表示されませんが、HTML ドキュメント オブジェクト モデル (DOM) のノードと同様に、ルートに追加する必要があります。つまり、マップにオブジェクトを表示するに は、マップオブジェクトのメソッドaddObject()
を呼び出して、そのオブジェクトをマップのルートグループに追加する必要があります。 逆に、マップからオブジェクトを削除するには、マップオブジェクトのメソッドremoveObject()
の呼び出しが必要です。
グループには独自メソッドaddObject()
とメソッドremoveObject()
があり、 HTML ドキュメントオブジェクトモデルのコンテナ要素のように動作します。 空のグループをマップに追加して、後で個々のオブジェクトを追加できます。
次のコードでは、空のグループを作成してマップに追加し、マーカーを作成してグループのメンバーにする方法を示します。
group = new H.map.Group();
map.addObject(group);
marker = new H.map.Marker(map.getCenter());
group.addObject(marker);
レンダリング順序
HERE Maps API for Javascript のレンダリングエンジンは、マップオブジェクトを評価し、spatialオブジェクト、makers、および DOM makersを別々のパスでレンダリングします。 つまり、spatials、makers、および DOM makersを混合することはできません。 spatialsオブジェクトはメインシーンのジオスペースでレンダリングされ、他のマップレイヤーと同様に描画されます。 すべてのマップレイヤーをレンダリング後 、 Maps API はすべてのMarkers
( normal makers ) と最後にすべてのレイヤーDomMarkers
をレンダリングします。
参照 :