バージョン

パス要素の追加

PathElement オブジェクトによってユーザーのマップに線を追加することができます。これはマップでルートやパスを描きたい場合に役立ちます。PathElement オブジェクトを作成するには、線のための点を指定する必要があります。これらの点の起点は測地座標またはデカルト座標に設定できます。点が指定されれば、xamWebMap で線を設定するために使用される MapPolylineCollection オブジェクト内のコレクションとしてそれらを保存できます。

以下のコードは、マップ レイヤーの Imported イベントを使用して 4 ヶ国を通過するパスを作成する方法を示します。

Visual Basic の場合:

Private Sub worldLayer_Imported(ByVal sender As System.Object, ByVal e As Infragistics.Controls.Maps.MapLayerImportEventArgs)
   If e.Action = MapLayerImportAction.End Then
   ' 線の終点の線分群コレクション
   Dim lines As New MapPolylineCollection()
   Dim points As New List(Of Point)()
   'アメリカ合衆国
   points.Add(New Point(-74.535, 40.246))
   'ブラジル
   points.Add(New Point(-37, -5))
   '南アフリカ
   points.Add(New Point(20, -33))
   'タイ
   points.Add(New Point(100, 15))
   ' 測地座標をデカルト座標に変換します
   lines.Add(map1.MapProjection.ProjectToMap(points))
   ' 線分群を使用してパス要素を作成して点を設定します
   Dim lineElement As New PathElement()
   lineElement.Polylines = lines
   lineElement.Fill = New SolidColorBrush(Colors.Red)
   lineElement.StrokeThickness = 2
   map1.Layers(0).Elements.Add(lineElement)
   Dim worldRect As Rect = lineElement.WorldRect
   worldRect = lines.GetWorldRect()
   lineElement.WorldRect = worldRect
   End If
   End Sub

C# の場合:

private void worldLayer_Imported(object sender, Infragistics.Controls.Maps.MapLayerImportEventArgs e)
{
   if (e.Action == MapLayerImportAction.End)
   {
      // 線の終点の線分群コレクション
      MapPolylineCollection lines = new MapPolylineCollection();
      List<Point> points = new List<Point>();
      // アメリカ合衆国
      points.Add(new Point(-74.535, 40.246));
      // ブラジル
      points.Add(new Point(-37, -5));
      // 南アフリカ
      points.Add(new Point(20, -33));
      // タイ
      points.Add(new Point(100, 15));
      // 測地座標をデカルト座標に変換します
      lines.Add(map1.MapProjection.ProjectToMap(points));
      // 線分群を使用してパス要素を作成して点を設定します
      PathElement lineElement = new PathElement() { Polylines = lines };
      lineElement.Fill = new SolidColorBrush(Colors.Red);
      lineElement.StrokeThickness = 2;
      map1.Layers[0].Elements.Add(lineElement);
      Rect worldRect = lineElement.WorldRect;
      worldRect = lines.GetWorldRect();
      lineElement.WorldRect = worldRect;
   }
}
SL DV XamMap Add Path Element 01.png