このセクションでは、基本的な C1Maps の概念と主要なプロパティについて説明します。
C1Maps は、さまざまなソースから取得した地理情報を表示できます。デフォルトでは、C1Maps はソースとして BingMaps の航空写真を使用しますが、Source プロパティを使ってソースを変更することもできます。このプロパティは MultiScaleTileSource 型のオブジェクトです。
次のソースがあります。
Virtual Earth Aerial ソース
Visual Basic |
コードのコピー
|
---|---|
map1.Source = New VirtualEarthAerialSource()
|
C# |
コードのコピー
|
---|---|
map1.Source = new VirtualEarthAerialSource();
|
Virtual Earth Road ソース
Visual Basic |
コードのコピー
|
---|---|
map2.Source = New VirtualEarthRoadSource()
|
C# |
コードのコピー
|
---|---|
map2.Source = new VirtualEarthRoadSource();
|
Virtual Earth Hybrid ソース
Visual Basic |
コードのコピー
|
---|---|
map3.Source = New VirtualEarthHybridSource()
|
C# |
コードのコピー
|
---|---|
map3.Source = new VirtualEarthHybridSource();
|
マップとして現在表示されている部分は、Center プロパティと Zoom プロパティ、およびコントロールのサイズによって決定されます。
Center プロパティは Point 型ですが、実際は地理座標を表し、X プロパティが経度、Y プロパティが緯度です。ユーザーは、マウスでマップをドラッグしたり、左上隅に表示されるナビゲータコントロールを使用して、Center プロパティの値を変更できます。
Zoom プロパティは、マップの現在の解像度を指定します。ズーム値0でマップは完全にズームアウトし、値が1増えるたびにマップの解像度が倍になります。ユーザーは、マウスホイールまたはコントロールの左側にあるズームコントロールを使用して、Zoom プロパティの値を変更できます。
C1Maps は、次の3つの座標系を使用します。
地理座標は、緯度と経度を使って地球上の各地点を示します。この座標系はデカルト座標ではありません。つまり、パンしてもマップのスケールは変わりません。
論理座標は、各軸の0~1の値でマップの全範囲を表します。デカルト座標なので、操作が簡単です。
画面座標は、左上隅を基準にしたコントロールのピクセル座標です。これは、コントロール内の項目の配置やマウスイベントの処理に使用されます。
C1Maps には、これらの座標系間の変換に使用される ScreenToGeographic、ScreenToLogic、GeographicToScreen、LogicToScreen の4つのメソッドが用意されています。地理座標と論理座標の間の変換は、C1Maps.Projection プロパティを使って設定される投影法に基づいて行われます。投影法は、異なるマップをサポートするように変更できます。デフォルトは、LiveMaps などのほとんどのプロバイダが使用しているメルカトル図法です。
ソースから提供される地理情報のほかに、情報レイヤをマップに追加できます。C1Maps には、デフォルトで次の5つのレイヤが用意されています。
C1MapItemsLayer は、任意の項目をマップ上に地理的に配置して表示するために使用されるレイヤです。 このレイヤは ItemsControl なので、UIElement オブジェクトまたは汎用データオブジェクトの追加を直接サポートします。また、それらのオブジェクトをビジュアル項目に変換するために、DataTemplate が使用されます。
C1MapVirtualLayer は、仮想化された項目を表示します。つまり、それらの項目は、それが属するマップ領域が表示されている場合にのみロードされます。 また、非同期リクエストがサポートされるため、新しい項目が表示されたときにのみ、サーバーからそれらの項目がダウンロードされます。
C1VectorLayer は、その頂点が地理的に配置されている直線や多角形などのベクターデータを表示します。KML ファイルの間でデータを保存したりロードすることができます。
C1MapToolsLayer は、パンとズームのツールやスケールを表示するために使用される2番目のレイヤです。このレイヤは C1Maps のテンプレートに組み込まれているため、手作業で追加する必要がありません。
C1MapTilesLayer は、マップタイルが表示される背景レイヤです。このレイヤは C1Maps によって自動的に管理されるため、通常、これを使用する必要はありません。