0

我有一个大对象,里面充满了来自 GIS 系统的 WKT 信息。我正在循环数据并将其映射到图层中,然后将这些图层推送到地图上。这工作正常,我正在显示正确的数据。

for (var j = 0; j < 10; j++) {
    var dataLayer = new Microsoft.Maps.Layer($scope.thing);
    for (var i = 0; i < bArray.length; i++) {
        if (bArray[i].count == $scope.thing) {
            dataLayer.add(new Microsoft.Maps.WellKnownText.read(bArray[i].wkt);
            dataLayer.item = bArray[i].count;
        }
    }

    Microsoft.Maps.Events.addHandler(dataLayer, "click", polylineClicked);
    $scope.map.layers.insert(dataLayer);
    $scope.map.layers[j].setVisible(false);
    $scope.thing++;
}

每一层中的数据分为不同的类别,存储在“项目”字段中,我在侧面图例中显示这些类别。

我的问题是如何为地图上的每个部分找到“项目”?当我查看地图对象时,我可以看到图层,当我进入图层时,我可以看到图元,但是当我进入图元时,它们在“项目”中都具有相同的类别,而不是它们应该具有的类别。

如何为每个细分市场找到“项目”?

谢谢 Docmur

4

1 回答 1

1

首先,使用图层的元数据属性来存储自定义信息,否则您可能会覆盖图层类的内部属性之一。例如:dataLayer.metadata = { item: "自定义数据" };

也就是说,您的 item 属性在 dataLayer 上,而不是在单个原语上。看起来你在内部循环中一遍又一遍地向它添加相同的值,所以你最终会得到很多相同的值。您能否提供有关您想要实现的目标的更多详细信息,因为可能有一种更清洁的方法可以做到这一点。

于 2017-10-03T19:55:41.923 回答