Maps > Rogue Wave Views リーダー・フレームワーク > 機能イテレーター > IlvMapFeatureIterator の概要
 
IlvMapFeatureIterator の概要
地図機能イテレーターには、次の 3 つの主要メソッドがあります。
*IlvMapFeatureIterator::getNextFeature メソッドを使うと、ファイルから読み込んだり、データベースやマップ・サーバーから問い合わせを行なった一連の地図オブジェクトについて反復処理ができます。このメソッドは、最後の地図機能を読み込んだ場合に null ポインターを返します。IlvMapFeatureIterator抽象クラスを実装する Rogue Wave Viewsの定義済みリーダーは、必ず IlvMapFeature の同じインスタンスを返します。したがって、getNextFeature メソッドが呼び出されるたびに、新たに読み込んだ地図機能は前の地図機能に置き換えられ、前の地図機能はジオメトリーやアトリビュートとともに永久的に失われます。その結果、getNextFeature メソッドをもう一度呼び出す前に、この地図機能を必ず使うか、または地図機能を保持する場合は、その地図機能のコピーを取る必要があります。これは、アトリビュートをグラフィック・オブジェクトに付加するの例で実行したものです。
地図機能が揮発性なのは、新しい機能を読み込むたびにメモリーが割り当てられ、パフォーマンスが失われるのを回避するためです。初めて地図機能を読み込んだときに保存用にメモリーを割り当て、必要な場合のみ更新する方が効率的です。
*getDefaultFeatureRenderer メソッドは、読み込んだ地図機能にそれぞれ適切なレンダラーを返します。レンダラーを参照してください。
*データ・ソースが地理参照されている場合、getProjection メソッドは null 以外の IlvProjection を返し、その他の場合は null 投影図法を返します。データに投影図法が記述されている場合に、そのデータ・ソースは地理参照されていると言います。投影図法については、 ターゲット投影図法を選択する および 地図投影図法 を参照してください。また、非地理参照ファイルをロードする も参照してください。
以下のコード例では、イテレーターで読み込む地図機能をすべてロードし、それらの機能をマネージャーに置きます。
IlvFeatureRenderer* renderer =
featureIterator->getDefaultFeatureRenderer(display);
 
for (const IlvMapFeature* feature = featureIterator->getNextFeature(status);
feature;
feature = featureIterator->getNextFeature(status)) {
 
if (status != IlvMaps::NoError()) {
IlvPrint(IlvMaps::GetErrorMessage(status, display));
return;
}
 
IlvGraphic* graphic = renderer->makeGraphic(feature,
mapinfo,
status);
if(graphic)
manager->addObject(graphic, IlvFalse, layerIndex);
else if(status != IlvMaps::NoError())
IlvPrint(IlvMaps::GetErrorMessage(status, display));
}
 

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.