1

このオブジェクトからすべての属性名と値を返そうとしています

-この関数は、クエリが実行された後に呼び出され、機能に結果が含まれます。
-feature.attributes は、すべての属性名を含む「オブジェクト」を返します。
-featureLayer[counter].fields[i].name は正常に動作します

私は feature.attributes が配列であると仮定していました。この機能オブジェクトからすべての属性値を返す方法について誰か提案がありますか?

(counter、map、featureLayer、および queryContent はグローバルに宣言されています)

function showFeature(feature,evt) {
    //set symbol
    feature.setSymbol(symbol);

    //construct infowindow title and content
    var attr = feature.attributes;
    var title = "Query";
    queryContent = queryContent + "<div>" + "Layer: " + featureLayer[counter].name + "<br />";

    for(i=0;i<featureLayer[counter].fields.length;i++){
        queryContent = queryContent + featureLayer[counter].fields[i].name + ": " + attr[i] + "<br />" + "<br />" + "</div>";
    }

    counter++;
    map.infoWindow.setTitle(title);
    map.infoWindow.setContent(queryContent);

    (evt) ? map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint)) : null;
}

前もって感謝します。

4

1 に答える 1

0

arcgis パッケージで非常にうまく機能する代替手段を見つけました。

.attr の代わりに、[attr] を使用できます。

for ループを次のように置き換えます。

for(i=0;i<featureLayer[counter].fields.length;i++){
   queryContent = queryContent + featureLayer[counter].fields[i].name + ": " + feature.attributes[featureLayer[counter].fields[i].name] + "<br />" + "</div>";
}
于 2012-08-18T17:19:33.647 に答える