KML は、地理的な表示と注釈に使用される XML ベースの言語で、最初は Google Earth 用に作成されました。詳細については、「https://developers.google.com/kml/documentation/」を参照してください。
KML インポートは、
KmlReader クラスによって実行されます。このクラスには、用意された KML ソース(文字列またはストリーム)からベクターオブジェクトのコレクションを作成するための静的メソッドがあります。このコレクションは、
VectorLayerに簡単に追加できます。
圧縮された KML ファイル(KMZ)を使用して、マップに図形を追加することもできます。次のコードは、KMZ ファイルを使用してマップに図形を追加します。
Dim vl = MapReader.LoadKmlFile("WorldMap.kmz", Function(vector, data)
Dim name = TryCast(data("name"), String)
vector.Tag = name
' ベクターデータのカスタマイズ
Dim fillColor = TryCast(data(KmlReader.StyleFillColor), String)
If fillColor IsNot Nothing Then
vector.Style.BackColor = MapReader.GetKmlStyleColor(fillColor)
End If
Dim placemark = TryCast(vector, C1.Win.Map.VectorPlacemark)
If placemark IsNot Nothing Then
placemark.Marker.Caption = name
placemark.Lod = New LOD(0, 0, 2, 20)
End If
End Function)
vl.LabelVisibility = LabelVisibility.AutoHide
' 各ベクトルを介してスタイルを設定する代わりに、ベクトルとラベルのデフォルトスタイルを設定します
vl.Style.Stroke.Color = Color.Blue
vl.Style.Stroke.Width = 1
vl.LabelStyle.ForeColor = Color.Green
c1Map1.Layers.Add(vl)
var vl = MapReader.LoadKmlFile("WorldMap.kmz", (vector, data) =>
{
var name = data["name"] as string;
vector.Tag = name;
// ベクターデータのカスタマイズ
var fillColor = data[KmlReader.StyleFillColor] as string;
if (fillColor != null)
{
vector.Style.BackColor = MapReader.GetKmlStyleColor(fillColor);
}
var placemark = vector as C1.Win.Map.VectorPlacemark;
if (placemark != null)
{
placemark.Marker.Caption = name;
placemark.Lod = new LOD(0, 0, 2, 20);
}
});
vl.LabelVisibility = LabelVisibility.AutoHide;
// 各ベクトルを介してスタイルを設定する代わりに、ベクトルとラベルのデフォルトスタイルを設定できます
vl.Style.Stroke.Color = Color.Blue;
vl.Style.Stroke.Width = 1;
vl.LabelStyle.ForeColor = Color.Green;
c1Map1.Layers.Add(vl);
上のコードでは、既に作成した MapReader というクラスを参照しています。このクラスは、KMZ ファイルからベクターデータを読み込みます。
KMZ ファイルから図形を追加すると、マップは次の図のようになります。
