Maps for UWP
マップの概念と主要なプロパティ

ここでは、基本的なマップの概念と主要なプロパティについて詳しく説明します。

C1Maps は、さまざまなソースから取得した地理情報を表示できます。デフォルトでは、C1Maps はソースとして Microsoft LiveMaps の航空写真を使用しますが、Source プロパティを使ってソースを変更することもできます。このプロパティは MultiScaleTileSource 型のオブジェクトです。

次のソースがあります。

  • Virtual Earth Aerial ソース

    VisualBasic
    コードのコピー
    map1.Source = New VirtualEarthAerialSource()
    

    C#
    コードのコピー
    map1.Source = new VirtualEarthAerialSource();
    

  • Virtual Earth Road ソース

    VisualBasic
    コードのコピー
    map2.Source = new VirtualEarthRoadSource()
    

    C#
    コードのコピー
    map2.Source = new VirtualEarthRoadSource();
    

  • Virtual Earth Hybrid ソース

    VisualBasic
    コードのコピー
    map3.Source = new VirtualEarthHybridSource()
    

    C#
    コードのコピー
    map3.Source = new VirtualEarthHybridSource();
    

マップとして現在表示されている部分は、Center プロパティと Zoom プロパティ、およびコントロールのサイズによって決定されます。

  • Center プロパティは Point 型ですが、実際は地理座標を表し、X プロパティが経度、Y プロパティが緯度です。ユーザーは、マップをドラッグして、Center プロパティの値を変更できます。

    マークアップ
    コードのコピー
    <Maps:C1Maps Name="maps" Center="-58.40, -34.36"/>
    

    C#
    コードのコピー
    maps.Center = new Point(-58.40, -34.36);
    


  • Zoom プロパティは、マップの現在の解像度を指定します。ズーム値0でマップは完全にズームアウトし、値が1増えるたびにマップの解像度が倍になります。

    マークアップ
    コードのコピー
    <Maps:C1Maps Name="maps" MinZoom= "5" MaxZoom= "15"/>
    

    C#
    コードのコピー
    maps.MinZoom = 5;
    maps.MaxZoom = 15;
    

C1Maps は、次の3つの座標系を使用します。

  • 地理座標は、緯度と経度を使って地球上の各地点を示します。この座標系はデカルト座標ではありません。つまり、パンしてもマップのスケールは変わりません。
  • 論理座標は、各軸の0〜1の値でマップの全範囲を表します。デカルト座標なので、操作が簡単です。
  • 画面座標は、左上隅を基準にしたコントロールのピクセル座標です。これは、コントロール内の項目の配置やマウスイベントの処理に使用されます。

C1Maps には、これらの座標系間の変換に使用される ScreenToGeographicScreenToLogicGeographicToScreenLogicToScreen の4つのメソッドが用意されています。地理座標と論理座標の間の変換は、C1Maps.Projection プロパティを使って設定される投影法に基づいて行われます。投影法は、異なるマップをサポートするように変更できます。デフォルトは、LiveMaps などのほとんどのプロバイダが使用しているメルカトル図法です。

ソースから提供される地理情報のほかに、情報レイヤをマップに追加できます。C1Maps には、デフォルトで次の5つのレイヤが用意されています。

次の画像では、最も使用する3層を示します。

  • C1MapItemsLayer は、任意の項目をマップ上に地理的に配置して表示するために使用されるレイヤです。 このレイヤは ItemsControl なので、UIElement オブジェクトまたは汎用データオブジェクトの追加を直接サポートします。また、それらのオブジェクトをビジュアル項目に変換するために、DataTemplate が使用されます。
  • C1MapVirtualLayer は、仮想化された項目を表示します。つまり、それらの項目は、それが属するマップ領域が表示されている場合にのみロードされます。 また、非同期リクエストがサポートされるため、新しい項目が表示されたときにのみ、サーバーからそれらの項目がダウンロードされます。
  • C1VectorLayer は、その頂点が地理的に配置されている直線や多角形などのベクターデータを表示します。KML ファイルの間でデータを保存したりロードすることができます。
  • C1MapTilesLayer は、マップタイルが表示される背景レイヤです。このレイヤは C1Maps によって自動的に管理されるため、通常、これを使用する必要はありません。