バージョン

記号要素の追加

xamMap で対象の点にマーカーを追加する必要がある場合、 SymbolElement オブジェクトを使用できます。この派生した MapElement タイプによって事前に定義した図形をコントロールに追加することができます。記号の配置を定義するためにデカルト座標または測地座標を使用できます。

以下のコードは、測地座標を使用して赤道に菱形の記号要素を追加する方法を示しています。

XAML の場合:

<igMap:XamMap x:Name="xamMap">
   <igMap:XamMap.Layers>
      <igMap:MapLayer x:Name="worldLayer" Imported="worldLayer_Imported">
         <igMap:MapLayer.Reader>
            <igMap:ShapeFileReader Uri="/../../Shapefiles/world" DataMapping="Name=CNTRY_NAME; Caption=CNTRY_NAME" />
         </igMap:MapLayer.Reader>
      </igMap:MapLayer>
   </igMap:XamMap.Layers>
</igMap:XamMap>

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 latitude As Double = 0
            Dim longitude As Double = 0
            ' 測地座標からデカルト座標への投影を使用して Point データを取得します
            Dim origin As Point = xamMap.MapProjection.ProjectToMap(New Point(longitude, latitude))
            Dim element As New SymbolElement()
            element.SymbolOrigin = origin
            element.Caption = "Marker"
            element.SymbolType = MapSymbolType.Diamond
            element.SymbolSize = 10
            xamMap.Layers(0).Elements.Add(element)
        End If
End Sub

C# の場合:

private void worldLayer_Imported(object sender, MapLayerImportEventArgs e)
{
   if (e.Action == MapLayerImportAction.End)
   {
       // 赤道の点座標
       double latitude = 0;
       double longitude = 0;
       // 測地座標からデカルト座標への投影を使用して Point データを取得します
       Point origin = xamMap.MapProjection.ProjectToMap(new Point(longitude, latitude));
       SymbolElement element = new SymbolElement()
       { SymbolOrigin = origin, Caption = "Marker", SymbolType = MapSymbolType.Diamond, SymbolSize = 10 };
       xamMap.Layers[0].Elements.Add(element);
    }
 }
xamMap Add Symbol Element 01.png