IMapTileProviderおよびIMapTileインタフェースと一部修正を加えたGrapecity.ActiveReports.configファイルを使用して、Map(Professional)コントロールにカスタムタイルプロバイダを追加し、構成することができます。カスタムタイルプロバイダをセットアップする手順を以下に示します。
- 新しいクラス 項目をVisual Studioのクラスライブラリプロジェクトに追加し、名前をMyTileProvider に変更します。以下のようなコードを追加して、 IMapTileProvider インタフェースを実装します。
Visual Basic
Visual Basicコード (クラスの一番上に貼り付けます) |
コードのコピー
|
Imports System
Imports System.Collections.Specialized
Imports GrapeCity.ActiveReports.Extensibility.Rendering.Components.Map
|
Visual Basicコード (Importsステートメントの下に貼り付けます) |
コードのコピー
|
Public Class MyTileProvider
Implements IMapTileProvider
' タイルプロバイダの設定(ApiKey、Language、Styleなど)
Public Property Settings() As NameValueCollection
Get
Return m_Settings
End Get
Private Set
m_Settings = Value
End Set
End Property
Private m_Settings As NameValueCollection
' 指定された座標と詳細化レベルによってタイルのインスタンスを取得します
Public Sub GetTile(key As MapTileKey, success As Action(Of IMapTile), [error] As Action(Of Exception))
End Sub
End Class
|
C#
C#コード (クラスの一番上に貼り付けます) |
コードのコピー
|
using System;
using System.Collections.Specialized;
using GrapeCity.ActiveReports.Extensibility.Rendering.Components.Map;
|
C#コード (Usingステートメントの下に貼り付けます) |
コードのコピー
|
public class MyTileProvider : IMapTileProvider
{
// タイルプロバイダの設定(ApiKey、Language、Styleなど)
public NameValueCollection Settings { get; private set; }
// 指定された座標と詳細化レベルによってタイルのインスタンスを取得します
public void GetTile(MapTileKey key, Action<IMapTile> success, Action<Exception> error)
{
}
}
|
 |
メモ: タイルサーバーで必要とされる設定や詳細に基づいて、タイル画像を提供する関数や機能をこのクラスに追加します。このクラスはカスタムタイルサーバーとのインタフェースとして機能します。 |
- 別のクラス項目をプロジェクトに追加し、名前をMyMapTileに変更します。以下のようなコードを追加して、IMapTileインタフェースを実装します。
Visual Basic
Visual Basicコード (クラスの一番上に貼り付けます) |
コードのコピー
|
Imports System.IO
Imports GrapeCity.ActiveReports.Extensibility.Rendering.Components.Map
|
Visual Basicコード (Importsステートメントの下に貼り付けます) |
コードのコピー
|
Public Class MyMapTile
Implements IMapTile
' タイル識別子を取得します。
Public Property Id() As MapTileKey
Get
Return m_Id
End Get
Private Set
m_Id = Value
End Set
End Property
Private m_Id As MapTileKey
' タイル画像ストリームを取得します。
Public Property Image() As Stream
Get
Return m_Image
End Get
Private Set
m_Image = Value
End Set
End Property
Private m_Image As Stream
End Class
|
C#
C#コード (クラスの一番上に貼り付けます) |
コードのコピー
|
using System.IO;
using GrapeCity.ActiveReports.Extensibility.Rendering.Components.Map;
|
C#コード (Usingステートメントの下に貼り付けます) |
コードのコピー
|
public class MyMapTile : IMapTile
{
// タイル識別子を取得します。
public MapTileKey Id { get; private set; }
// タイル画像ストリームを取得します。
public Stream Image { get; private set; }
}
|
- Visual Studioプロジェクトをビルドし、プロジェクトのBin>Debugフォルダへ移動してDLLファイルをコピーします。
- Grapecity.ActiveReports.configファイルをメモ帳で開きます。
- 以下のようなコードを<Configuration>タグと</Configuration>タグの間に貼り付けます。
<Configuration></Configuration>タグ内に貼り付けます。 |
コードのコピー
|
<!-- カスタムタイルプロバイダを登録して構成します。 -->
<MapTileProvider Name="Custom" DisplayName="Custom Maps" type="YourTileProvider, AssemblyName, Version = x.x.x.x">
<Settings>
<add key="ApiKey" value="API Key" />
</Settings>
</MapTileProvider>
|
- 保存してメモ帳を閉じます。
- 製品インストールフォルダへ移動し、コピーしたDLLとGrapecity.ActiveReports.configファイルをGrapecity.ActiveReports.Designer.exeセットアップファイルと同じフォルダに配置します。
- [スタート]メニューから、[ActiveReports for .NET 12.0J デザイナ]を実行します。
- Mapコントロールを含むレポートを作成します。詳細については、「地図を含むレポート」を参照してください。
- Mapコントロールにタイルレイヤーを追加し、上記の手順で作成したカスタムタイルプロバイダを選択します。詳細については、「タイルレイヤー」を参照してください。
 |
メモ: Viewerコントロール内のマップにタイルレイヤーを表示するためには、Grapecity.ActiveReports.configファイルをプロジェクトのDebugフォルダに保持し、さらにこのconfigファイルをVisual Studioプロジェクトに追加する必要があります。 |