我正在处理的应用程序向API发出请求,该API返回Lat,Long对以及一些记录ID。 在API成功响应后,应用程序使用SimpleMarkerSymbol将LatLong固定在基本地图上,并且应该使用标记附加记录ID。
在点击标记时,应用应从所选标记中检索ID以进一步请求。 目前,我能够成功地将标记固定在哪里,以下关键问题仍有待解答
谢谢, Beakal
答案 0 :(得分:1)
我假设您提到的外部API不是ArcGIS要素服务,因此您可以手动创建图形来表示要素 - 如果不是这样,您可以扩展有点问题。假设情况如此,您可以满足您的两个要求。
您可以使用setAttributes方法向图形添加属性,也可以在创建图形时传入属性对象。 attributes对象只是您使用每个属性的属性创建的对象。以下是前者的示例,假设g
是您刚刚创建的图形:
g.setAttributes({
id: 1,
name: "London"
});
这会添加一个对象,其属性id和name设置为指定的值。
您可以在多个地方收听点击次数,例如,在地图上或特定的图形图层上。以下是使用地图的示例:
map.on("click", function (evt) {
console.log(evt.graphic.attributes.name);
});
如您所见,click事件传递的属性我称之为evt。此属性引用了单击的图形(evt.graphic),当然图形具有您设置的属性集合(evt.graphic.attributes)。您可以通过属性对象的属性单独访问每个属性,如上面的.name所示。您可能想要进行一些检查,即在尝试访问它之前检查evt是否包含图形,依此类推。
希望这有帮助。