Maps for WPF/Silverlight
手順 2:データソースへの連結
クイックスタート > 手順 2:データソースへの連結

この手順では、NameLatLong の2つのプロパティを持つクラスを作成し、配列コレクションを使ってそれらのプロパティに値を入力します。また、C1VectorPlacemark を含む C1VectorLayer をコントロールに追加します。次に、Name プロパティを C1VectorPlacemark の Label プロパティに連結し、LatLong プロパティを C1VectorPlacemarkGeoPoint プロパティに連結します。
次の手順に従います。

  1. MainPage.xaml コードページ(MainPage.xaml.cs または MainPage.xaml.vb)を開きます。このページの拡張子は、プロジェクトに選択した言語によって異なります。

  2. 次のクラスをプロジェクト内の名前空間宣言の下に追加します。

    このクラスは、Name という名前の文字列プロパティおよび LongLat という名前の Point プロパティを含むクラスを作成します。

    Visual Basic
    コードのコピー
    Public Class City
    Private _LongLat As Point
        Public Property LongLat() As Point
            Get
                Return _LongLat
            End Get
            Set(ByVal value As Point)
                _LongLat = value
            End Set
        End Property
    Private _Name As String
        Public Property Name() As String
            Get
                Return _Name
            End Get
            Set(ByVal value As String)
                _Name = value
            End Set
        End Property
        Public Sub New(ByVal location As Point, ByVal cityName As String)
            Me.LongLat = location
            Me.Name = cityName
        End Sub
    End Class
    

    C#
    コードのコピー
    public class City
      {
        public Point LongLat { get; set; }
        public string Name { get; set; }
      }
    
  3. 次のコードを InitializeComponent() メソッドの下に追加して、Name プロパティおよび LongLat プロパティに入力される配列コレクションを作成します。

    Visual Basic
    コードのコピー
    Dim cities() As City =
    New City() {
       New City(New Point(-58.40, -34.36),  "ブエノスアイレス"),
       New City(New Point(-47.92, -15.78), "ブラジリア"),
       New City(New Point(-70.39, -33.26), "サンティアゴ"),
       New City(New Point(-78.35, -0.15), "キト"),
       New City(New Point(-66.55, 10.30), "カラカス"),
       New City(New Point(-77.03, -12.03), "リマ"),
       New City(New Point(-57.40, -25.16), "アスンシオン"),
       New City(New Point(-74.05, 4.36), "ボゴタ"),
       New City(New Point(-68.09, -16.30), "ラパス"),
       New City(New Point(-58.10, 6.48), "ジョージタウン"),
       New City(New Point(-55.10, 5.50), "パラマリボ"),
       New City(New Point(-56.11, -34.53),"モンテビデオ")
       }
    C1Maps.DataContext = cities
    

    Visual Basic
    コードのコピー
    City[] cities = new City[]
    {
       new City(){ LongLat= new Point(-58.40, -34.36), Name="ブエノスアイレス"},
       new City(){ LongLat= new Point(-47.92, -15.78), Name="ブラジリア"},
       new City(){ LongLat= new Point(-70.39, -33.26), Name="サンティアゴ"},
       new City(){ LongLat= new Point(-78.35, -0.15), Name="キト"},
       new City(){ LongLat= new Point(-66.55, 10.30), Name="カラカス"},
       new City(){ LongLat= new Point(-56.11, -34.53), Name="モンテビデオ"},
       new City(){ LongLat= new Point(-77.03, -12.03), Name="リマ"},
       new City(){ LongLat= new Point(-57.40, -25.16), Name="アスンシオン"},
       new City(){ LongLat= new Point(-74.05, 4.36), Name="ボゴタ"},
       new City(){ LongLat= new Point(-68.09, -16.30), Name="ラパス"},
       new City(){ LongLat= new Point(-58.10, 6.48), Name="ジョージタウン"},
       new City(){ LongLat= new Point(-55.10, 5.50), Name="パラマリボ"},
    };
    C1Maps.DataContext = cities;
    
  4. XAML ビューに切り替えて、開始タグと終了タグが含まれるように <c1:C1Maps>マークアップを変更します。次のようになります。

    XAML
    コードのコピー
    <c1:C1Maps x:Name="C1Maps1" FadeInTiles="False" Margin="0,0,235,8" TargetCenter="-65,-25" Center="-58,-25" Zoom="2">
    </c1>
    
  5. Foreground="Aqua" を <c1:C1Maps>タグに追加します。

  6. 次の XAML マークアップを<c1:C1Maps> タグと</c1:C1Maps> タグの間に配置します。

    XAML
    コードのコピー
    <c1:C1Maps.Resources>
      <!-- 項目テンプレート -->
         <DataTemplate x:Key="templPts">
           <c1:C1VectorPlacemark
             GeoPoint="{Binding Path=LongLat}" Fill="Aqua" Stroke="Aqua"
             Label="{Binding Path=Name}" LabelPosition="Top" >
             <c1:C1VectorPlacemark.Geometry>
               <EllipseGeometry RadiusX="2" RadiusY="2" />
             </c1:C1VectorPlacemark.Geometry>
           </c1:C1VectorPlacemark>
         </DataTemplate>
      </c1:C1Maps.Resources>
      <c1:C1VectorLayer ItemsSource="{Binding}"
    ItemTemplate="{StaticResource templPts}" HorizontalAlignment="Right" Width="403" />
    

    この XAML は、データテンプレート、C1VectorPlacemark、および C1VectorLayer を作成します。C1VectorLayer の ItemsSource プロパティがデータソース全体に連結されます。また、C1VectorPlacemark の GeoPoint プロパティは LongLat プロパティの値に連結され、Label プロパティは Name プロパティの値に設定されます。プロジェクトを実行すると、Label プロパティおよび Name プロパティにデータソースから値が入力されて、一連のラベル付きプレースマークがマップ上に作成されます。

この手順では、データソースを作成し、それをC1VectorPlacemark のプロパティに連結しました。次の手順では、プログラムを実行して、このクイックスタートガイドで作成したプロジェクトの結果を表示します。

関連トピック