Построение центроида многоугольника векторного слоя

Вот оставшаяся служба, над которой я работаю: http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3

Мой текущий призыв к отображению векторного слоя выглядит следующим образом:

var recLayer = new FeatureLayer("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",{
    infoTemplate: recParkTemplate,
    outFields: ["STATE_NAME"]
  });
map.addLayer(recLayer);

Однако вместо того, чтобы рисовать многоугольник на карте, поскольку это esriGeometricPolygon. Я бы предпочел, чтобы он отображался на карте как esriGeometryPoint. Я знаю этот метод получения центроида конкретного многоугольника:

https://developers.arcgis.com/javascript/jsapi/polygon-amd.html#getcentroid

Моя проблема в том, что я не могу понять, как циклически перемещаться между всеми полигонами в векторном слое, а затем строить эти полигоны. Я могу только указать, щелкнуть и отобразить, как работает этот образец ESRI: https://developers.arcgis.com/javascript/jssamples/util_label_point.html

Спасибо за помощь. Вот текущий сайт, если вы хотите взглянуть на него: http://joshferrell.net/ece_project/


person Josh Ferrell    schedule 20.01.2015    source источник


Ответы (1)


чтобы циклически перемещаться между всеми геометрическими формами на вашем векторном слое, вы можете сделать что-то вроде этого:

            recLayer.on("update-end", function changeHandler(evt) {
            require(["dojo/_base/array"], function (array) {

                array.forEach(recLayer.graphics, function (entry, i) {
                    console.debug(entry, "at index", i);
                });
            });
        });

внутри цикла используйте getCentroid и добавьте результат на карту

person dlimos    schedule 23.01.2015