ESRI ArcGIS Javascript API RelationshipQuery класс

У меня возникли проблемы с классом ESRI ArcGIS Javascript API RelationshipQuery.

Я пытаюсь получить поле (поля) из другого слоя ГИС (в данном случае уровня 1) в моей ГИС-службе, используя класс RelationshipQuery. Другими словами, я хочу захватить записи с тем же полем SCTM в слое 1, что и поле SCTM в объекте AssessmentLayer FeatureLayer для выбранной точки, чтобы я мог заполнить всю информацию в ОДНОМ всплывающем окне.

Это мой сегмент кода, относящийся к классу RelationshipQuery

var title, content, graphicAttributes;

        var relatedQuery = new RelationshipQuery();
        relatedQuery.relationshipId = 1;
        relatedQuery.outFields = ["*"];


        assessorLayer.on("click", function(evt) 
        { /* start assessorLayer.on click event */

            graphicAttributes = evt.graphic.attributes;  

            title = "Assessor";
            content = "<b>Name: </b>" + graphicAttributes.OWNER_NAME + graphicAttributes.OWNER_NAME2
                    + "<br><b>Dimensions: </b>" + graphicAttributes.DIMENSIONS
                    + "<br><b>Garbage District: </b>" + graphicAttributes.CBA;

            relatedQuery.definitionExpression = ("SCTM = " + graphicAttributes.SCTM);

            assessorLayer.queryRelatedFeatures(relatedQuery, function(relatedRecords) 
            { /* start assessorLayer.queryRelatedFeatures function */
               var status = relatedRecords[graphicAttributes.STATUS];

                content = content + "<br><hr><br> Status: " + status; 


                map.infoWindow.setTitle(title);
                map.infoWindow.setContent(content);
                map.infoWindow.show(evt.screenPoint, map.getInfoWindowAnchor(evt.screenPoint));*/

            }); /* End assessorLayer.queryRelatedFeatures function */


        }); /* End assessorLayer.on click event */

person Town of Brookhaven    schedule 19.01.2015    source источник


Ответы (1)


Вам нужно установить objectid для запроса отношения, поэтому в обработчике AssessmentorLayer.on ("click", function (evt)) вы можете добавить

relatedQuery.objectIds = [evt.features[0].attributes.OBJECTID];

Другой вариант - использовать синтаксис связанных полей шаблона всплывающего окна, чтобы всплывающее окно автоматически запрашивало связанную таблицу для функции и заполнялось соответствующим образом. Примеры этого есть в документации JS API.

person Dave Timmins    schedule 20.04.2015