地図上に描画する

本SDKでは、地図上に以下の図形を追加することができます。

Polyline

PolylineOptionsオブジェクトを作成し、次のメソッドでマップに追加することで、地図にポリラインが追加できます。

ZDCMap.AddPolyline(PolylineOptions)

このメソッドはPolylineオブジェクトを返すので、これを使って追加したポリラインを変更/削除することができます。

PolylineOptionsには、以下のプロパティがあります。

プロパティ 概要  
Latlng ポリラインを構成する頂点(緯度経度)を設定します。ポリラインは連続した頂点の間に描画されます。  
Width ラインの幅を設定します。カメラのズームとは無関係に、一定に保たれます。  
Color ラインの色を設定します。ARGB32bit形式で、デフォルトは黒です。  
ZIndex ラインの描画順を設定します。この描画順は、他図形(Polygon, Circle, GroundOverlay)のZIndexも含めて決定されます。値が高い図形が、低い図形の上に描画されます。  
Visible ラインの可視性を設定します。trueの時に描画し、falseの時は描画しません。  
Clickable タッチイベントの発生可否を設定します。trueの時にラインがタッチされるとイベントが発生します。  
StartCap, EndCap 始終点形状を設定します。
  • ButtCap:始終点で四角形となる端点処理
  • RoundCap:始終点を中心にライン幅の半分の半径をもつ半円の端点処理
  • SquareCap:始終点からライン幅の半分だけ延長した端点処理
 
JointType 接点形状を設定します。
  • DEFAULT:ライン幅の半分の凸形状の接点処理
  • BEVEL:平坦な斜面の接点処理
  • ROUND:接点を中心にライン幅の半分の半径の円の接点処理
 

以下はポリラインを追加するサンプルコードです。

        PolylineOptions op = new PolylineOptions();
        op.Latlng.Add(new LatLng(35.628950, 139.741587));
        op.Latlng.Add(new LatLng(35.629004, 139.741083));
        op.Color = 0xFF0000FF;
        op.Width = 20;
        op.ZIndex = 5;
        Polyline line = map.AddPolyline(op);

Polygon

PolygonOptionsオブジェクトを作成し、次のメソッドでマップに追加することで、地図にポリゴンが追加できます。

ZDCMap.AddPolygon(PolygonOptions)

このメソッドはPolygonオブジェクトを返すので、これを使って追加したポリゴンを変更/削除することができます。

PolygonOptionsには、以下のプロパティがあります。

プロパティ 概要  
Points ポリゴンの輪郭を構成する頂点(緯度経度)を設定します。始点と終点が一致していなくてもかまいません。ポリゴンの自己交差はサポートしません。  
Holes ポリゴンの内側ポリゴンを設定します。内側ポリゴンは、Outlineに完全に含まれている必要があります。ポリゴンの自己交差はサポートしません。  
Stroke Width ポリゴンの輪郭線の幅を設定します。カメラのズームとは無関係に、一定に保たれます。  
Stroke Color ポリゴンの輪郭線の色を設定します。ARGB32bit形式で、デフォルトは黒です。  
Stroke JointType 枠線接点形状を設定します。
  • DEFAULT:ライン幅の半分の凸形状の接点処理
  • BEVEL:平坦な斜面の接点処理
  • ROUND:接点を中心にライン幅の半分の半径の円の接点処理
 
Fill Color ポリゴンの塗りつぶし色を設定します。ARGB32bit形式で、デフォルトは透明です。  
ZIndex ポリゴンの描画順を設定します。この描画順は、他図形(Polyline, Circle, GroundOverlay)のzIndexも含めて決定されます。値が高い図形が、低い図形の上に描画されます。  
Visible ポリゴンの可視性を設定します。trueの時に描画し、falseの時は描画しません。  
Clickable タッチイベントの発生可否を設定します。trueの時にポリゴンがタッチされるとイベントが発生します。  

以下はポリゴンを追加するサンプルコードです。

        PolygonOptions op = new PolygonOptions();
        op.Points.Add(new LatLng(35.628950, 139.741587));
        op.Points.Add(new LatLng(35.629004, 139.741083));
        op.Points.Add(new LatLng(35.629417, 139.741497));
        op.StrokeColor = 0xFF0000FF;
        op.StrokeWidth = 15;
        op.FillColor = 0x7FFF0000;
        op.ZIndex = 4;
        Polygon poly = map.AddPolygon(op);

Circle

CircleOptionsオブジェクトを作成し、次のメソッドでマップに追加することで、地図に円が追加できます。

ZDCMap.AddCircle(CircleOptions)

このメソッドはCircleオブジェクトを返すので、これを使って追加した円を変更/削除することができます。

CircleOptionsには、以下のプロパティがあります。

プロパティ 概要  
Center 円の中心点(緯度経度)を設定します。  
Radius 円の半径(メートル)を設定します。  
Stroke Width 円の輪郭線の幅を設定します。カメラのズームとは無関係に、一定に保たれます。  
Stroke Color 円の輪郭線の色を設定します。ARGB32bit形式で、デフォルトは黒です。  
Fill Color 円の塗りつぶし色を設定します。ARGB32bit形式で、デフォルトは透明です。  
ZIndex 円の描画順を設定します。この描画順は、他図形(Polyline, Polygon, GroundOverlay)のzIndexも含めて決定されます。値が高い図形が、低い図形の上に描画されます。  
Visible 円の可視性を設定します。trueの時に描画し、falseの時は描画しません。  
Clickable onCircleClickイベントの発生可否を設定します。trueの時に円がタッチされるとイベントが発生します。  

以下は円を追加するサンプルコードです。

        CircleOptions op = new CircleOptions();
        op.Center = new LatLng(43.389060, 142.785433);
        op.Radius = 10000;
        op.StrokeColor = 0xFF00FF00;
        op.FillColor = 0x7F00FFFF;
        Circle circle = map.AddCircle(op);

GroundOverlay

本SDKは、マップに緯度経度に紐付いた画像を追加することができます。
緯度経度によって画像がマップ固定されているため、ズームや回転、チルト操作によって画像が連動します。

GroundOverlayOptionsオブジェクトを作成し、次のメソッドでマップに追加することで、地図にグラウンドオーバーレイが追加できます。

ZDCMap.addGroundOverlay(GroundOverlayOptions)

このメソッドはGroundOverlayオブジェクトを返すので、これを使って追加したグラウンドオーバーレイを変更/削除することができます。

GroundOverlayOptionsには、以下のプロパティがあります。

プロパティ 概要  
Position グラウンドオーバーレイの座標(緯度経度)を指定します。
指定には以下の2通りの方法があります。

・Location(緯度経度)
画像の重心の緯度経度と画像の幅(メートル)を指定します。
画像の高さ(メートル)も指定することができます。指定しない場合は、画像の幅とアスペクト比から計算されて自動で設定されます。

・Bounds(バウンディングボックス)
画像を収める範囲を、左下、右上の緯度経度で指定します。
指定された範囲に従って、画像は伸縮します。

 
AnchorU, AnchorV 画像の重心を設定します。
画像の左上が(0.0,0.0)、右下が(1.0,1.0)となります。
デフォルト値は中央(0.5,0.5)です。
緯度経度指定のときのみ、このプロパティは有効です。
 
Image 画像を設定します。画像サイズは1024×1024以下でなければなりません。  
Bearing 画像を回転させる角度を設定します。  
Transparency 透明度を設定します。設定した画像に透過値が設定されている場合は、その値にこのプロパティを加味した値が設定されます。  
ZIndex グラウンドオーバーレイの描画順を設定します。この描画順は、他図形(Polyline, Polygon, Circle)のzIndexも含めて決定されます。値が高い図形が、低い図形の上に描画されます。  
Visible グラウンドオーバーレイの可視性を設定します。trueの時に描画し、falseの時は描画しません。  
Clickable onGroundOverlayClickイベントの発生可否を設定します。trueの時に画像がタッチされるとイベントが発生します。  

以下はグラウンドオーバーレイを追加するサンプルコードです
・緯度経度指定

        Texture2D texture = Texture2D.whiteTexture;
        GroundOverlayOptions op = new GroundOverlayOptions();
        op.Position(new LatLng(35.626153, 139.742092), 500);
        op.Image = texture;
        op.AnchorU = 0;
        op.AnchorV = 1;
        GroundOverlay overlay = map.AddGroundOverlay(op);


・バウンディングボックス指定

        Texture2D texture = Texture2D.whiteTexture;
        GroundOverlayOptions op = new GroundOverlayOptions();
        op.PositionFromBounds(new LatLngBounds(new LatLng(35, 140), new LatLng(40, 145)));
        op.Image = texture;
        GroundOverlay overlay = map.AddGroundOverlay(op);

Label

本SDKは、マップにラベル(注記と記号)を追加することができます。

LabelOptionsオブジェクトを作成し、次のメソッドでマップに追加することで、地図にラベルが追加できます。

ZDCMap.addLabel(LabelOptions)

このメソッドはLabelオブジェクトを返すので、これを使って追加したラベルを変更/削除することができます。

LabelOptionsには、以下のプロパティがあります。

プロパティ 概要  
Position ラベルの中心座標を設定します。  
DrawPosition 記号に対する文字の描画位置を設定します。
  • 0:記号の中心に文字の中心が位置します
  • 1:記号の右側に文字の中心が位置します
  • 2:記号の左側に文字の中心が位置します
  • 3:記号の上側に文字の中心が位置します
  • 4:記号の下側に文字の中心が位置します
 
Icons 記号を設定します。
複数設定することが可能ですが、アトラス形式にした際に幅と高さが1024を超える場合は描画できません。
 
LabelTextInfo 文字情報を設定します。
詳細は以下を参照してください。
文字情報を設定する
 
Bearing ラベルを回転させる角度を設定します。
指定した角度は、文字と記号の両方に適用されます。
 
zIndex ラベルの描画優先度を設定します。
ラベル同士が重なった時に、値が低いものを優先的に描画します。
ラベルのzIndexは、他図形(Polyline, Polygon, Circle, GroundOverlay)のzIndexと扱いが異なることに注意してください。
 
Visible ラベルの可視性を設定します。trueの時に描画し、falseの時は描画しません。  
Force ラベルの強制描画フラグを設定します。
この値がtrueの時、zIndexの設定を無視して描画します。
 
Clickable onLabelClickイベントの発生可否を設定します。trueの時にラベルがタッチされるとイベントが発生します。  

以下はラベルを追加するサンプルコードです。

        LabelOptions op = new LabelOptions();
        op.Position = new LatLng(35.628958, 139.741576);
        op.Visible = true;
        op.ZIndex = 1;
        op.Force = true;

        LabelTextInfo info = new LabelTextInfo();
        info.Text = "Sample";
        info.TextColor = 0xffff0000;
        info.TextSize = 30;
        info.FillColor = 0xff00ff00;
        info.BorderColor = 0xff0000ff;
        info.BorderSize = 3;
        info.Language = "jpn";

        op.TextInfo.Add(info);
        Label label = zdcmap.AddLabel(op);