レンダラーの概要
レンダラーとは、地図機能をクラス
IlvGraphic や、そのいずれかのサブクラスのグラフィック・オブジェクトに変換する際に使用するオブジェクトです。
レンダラーは、
IlvFeatureRenderer 抽象クラスを実装する必要があります。特定の地図機能をグラフィック・オブジェクトに変換するために、
makeGraphic メソッドを使用できます。
IlvGraphic* makeGraphic(const IlvMapFeature& feature,
const IlvMapInfo& targetMapInfo,
IlvMapsError& status);
2 番目の引数
targetMapInfo によって、ターゲット投影図法とアダプターを指定できます。アダプターは、地理座標 (通常は垂直軸が上向きの座標系の浮動小数点値で表現される) を、
IlvManager で使用するポイント座標 (垂直軸が下向きの座標系の整数値で表現される) に変換するコンバーターです。
IlvMapInfo の投影図法を 0 か、または
IlvUnknownProjection のインスタンスに設定すると、ターゲット投影図法が
IlvMapFeature のソース投影図法と同じとみなされます。この場合、投影変換は行われません。
投影図法とアダプターについては、
ターゲット投影図法を選択する および
地図投影図法 を参照してください。
Rogue Wave® Views Maps には、ライブラリーで使用可能な各ジオメトリー・タイプにデフォルトのレンダラー一式が含まれます。これらのレンダラーは、パッケージ
rendering にあります。たとえば、
IlvDefaultPointRenderer は、ポイントのジオメトリーがある地図機能をタイプ
IlvMarker のオブジェクトに変換します。また、ライブラリーは、タイプ
IlvDefaultFeatureRenderer のグローバル・デフォルト・レンダラーを提供しています。これを使って、定義済みジオメトリーの地図機能を変換することができます。レンダラーのアトリビュートの一部は、レンダリング・スタイルの指定によってカスタマイズできます。たとえば、
IlvMapLineRenderingStyle は、線の幅、色、線の種類のカスタマイズに使用します。
次のコード・サンプルは、ジオメトリーがタイプ
IlvMapCurve の地図機能を、緑の曲線に変換する方法を示します。これらのポリラインは、国の境界線の一部などになります。
IlvFeatureRenderer* renderer = new IlvDefaultCurveRenderer(_display); IlvMapLineRenderingStyle *lrs = new IlvMapLineRenderingStyle(_display); lrs->setForeground("green"); lrs->setLineWidth(2); renderer->setLineRenderingStyle(lrs); IlvGraphic* graphic = renderer->makeGraphic(feature, mapInfo, status); if(graphic) { _manager->addObject(graphic); } else { IlvWarning("This renderer can’t translate the map feature"); if(status != IlvMaps::NoError()) IlvWarning(IlvMaps::GetErrorMessage(status, _display)); } |
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.