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 回答