Maps > Rogue Wave Views リーダー・フレームワーク > 地図機能 > 地図機能のアトリビュート
 
地図機能のアトリビュート
各地図機能にはアトリビュートもあります。地図機能が町の場合、そのアトリビュートはその町の名前、または居住者数になります。たとえば、アトリビュートはグラフィカル・レンダリングに使用できます。色付き線のレンダラーを作成するでは、地図上で等高線を表すポリラインの色は、標高アトリビュートで定義されます。
アトリビュートは、クラス IlvFeatureAttribute に属します。それらのアトリビュートは、次に示す 2 つのクラスに格納されます。
*IlvFeatureAttributeInfo、名前、タイプ、必須条件または任意文字などのアトリビュート・プロパティーを定義します。
*IlvFeatureAttributeProperty、これらのアトリビュートの値を含みます。
以下のコード・サンプルでは、IlvMapFeature オブジェクトのアトリビュートをリストアップし、画面に表示します。
void
dumpAttributes(const IlvMapFeature* feature)
{
const IlvFeatureAttributeProperty* attributes =
feature->getAttributes();
if(!attributes)
return;
const IlvFeatureAttributeInfo* info =
attributes->getInfo();
if(info) {
IlvUInt count;
count = info->getAttributesCount();
for(IlvUInt i = 0; i < count; i++) {
 
const char* name = info->getAttributeName(i);
 
const IlvMapClassInfo* clsinfo = info->getAttributeClass(i);
const IlvFeatureAttribute* fa = attributes->getAttribute(i);
if(clsinfo->isSubtypeOf(IlvStringAttribute::ClassInfo())) {
const char *str = ((IlvStringAttribute*)fa)->getValue();
IlvPrint(“%s %s”, name ? name : “”, str ? str : “”);
} else if(clsinfo->isSubtypeOf(IlvIntegerAttribute::ClassInfo())){
int in = ((IlvIntegerAttribute*)fa)->getValue();
IlvPrint(“%s %d”, name ? name : “”, in);
} else if(clsinfo->isSubtypeOf(IlvDoubleAttribute::ClassInfo())){
double dbl = ((IlvDoubleAttribute*)fa)->getValue();
IlvPrint(“%s %g”, name ? name : “”, dbl);
} else if(clsinfo->isSubtypeOf(IlvBooleanAttribute::ClassInfo())){
IlvBoolean bo = ((IlvBooleanAttribute*)fa)->getValue();
IlvPrint(“%s %s”, name ? name : “”,
bo ? “true” : “false”);
}
}
}
}
 
整数、小数点値、文字列などを表すかどうかによって、アトリビュートのタイプは異なります。IlvFeatureAttribute クラスのすべての定義済みアトリビュートは、attribute パッケージにあります。

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