Как получить ObjectID из ArcGIS FeatureLayer на функцию щелчка?

Я пытаюсь работать с ArcGIS JavaScript API. я использую этот пример FeatureLayer и я пытаюсь сделать всплывающее окно, которое будет отображать различные данные в зависимости от objectID, на который я нажимаю. В основном то, что вы видите на этом примере.

Проблема в том, что я не могу получить доступ к ObjectID вне шаблона переменной. Внутри этого шаблона переменной вы просто устанавливаете заголовок как заголовок: «ID этого объекта — {ObjectID}». Это хорошо работает. Но мои данные хранятся в моей базе данных MySQL, поэтому я хочу, чтобы ObjectID сохранялся в переменной, когда я щелкаю по нему, а затем, возможно, отправляю его через ajax по какому-то маршруту. Затем в контроллере найдите соответствующий объект, получите его данные из базы данных, отправьте его обратно во всплывающий шаблон и отобразите его.

Это моя идея, как это могло бы работать, но мне нужно сначала получить ObjectID, к которому я не знаю, как получить к нему доступ. Если у вас есть идея, как ее можно решить, или вы знаете, как лучше поместить дополнительные данные из базы данных в шаблон PopupTemplate, дайте мне знать, пожалуйста. Благодарю.

РЕДАКТИРОВАТЬ:

require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"dojo/on",
"dojo/domReady!"], function(Map, MapView, FeatureLayer, On) {
var featureLayer = new FeatureLayer({
url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/ArcGIS/rest/services/NYCDemographics1/FeatureServer/0",
outFields: ["*"]
});

var map = new Map({
basemap: "streets",
layers: [featureLayer]
});

var view = new MapView({
container: "viewDiv",
map: map,
zoom: 11,
center: [-73.950, 40.702] //CZ [16, 49]
});

var template = {
title: "Marriage in NY, Zip Code: {ZIP}",
content: "<p>As of 2015, <b>{MARRIEDRATE}%</b> of the population in this zip code is married.</p>" +
"<ul><li>{MARRIED_CY} people are married</li>" +
"<li>{NEVMARR_CY} have never married</li>" +
"<li>{DIVORCD_CY} are divorced</li><ul>"};

featureLayer.popupTemplate = template;

On(featureLayer, 'click', function(e){
console.log(e);
});

});

-3

Решение

с "dojo/on" вы можете обработать событие click на слое объектов, а затем получить атрибуты фигуры, по которой вы щелкнули:

On(featureLayer, 'click', function (e) {
console.log(e.graphic.attributes.OBJECTID);
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]