ArcGIS Javascript api SimpleMarkerSymbol点击事件

时间:2014-07-19 15:43:14

标签: javascript api arcgis

我正在处理的应用程序向API发出请求,该API返回Lat,Long对以及一些记录ID。 在API成功响应后,应用程序使用SimpleMarkerSymbol将LatLong固定在基本地图上,并且应该使用标记附加记录ID。

在点击标记时,应用应从所选标记中检索ID以进一步请求。 目前,我能够成功地将标记固定在哪里,以下关键问题仍有待解答

  1. 有没有办法捕获SimpleMarkerSymbol点击事件?
  2. 有没有办法将数据属性附加到将在调度click事件时使用的标记?
  3. 谢谢, Beakal

1 个答案:

答案 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是否包含图形,依此类推。

希望这有帮助。