如何触发Graphic的点击事件?

How to trigger a Graphic's click event?

我正在使用 Esri Javascript API 4.5

加载地图时,我从外部源获取点坐标,然后使用 Graphic class 将其绘制在地图上,并为该图形分配 PopupTemplate

案例

图形已成功绘制在地图上。但是为了查看弹出模板,我需要单击图形。

问题

有什么方法可以在将图形添加到地图时触发图形的单击事件,以便弹出模板自动显示?

代码

require([    
"esri/PopupTemplate",     
"esri/Graphic",
.
.
.
.
"dojo/domReady!"
],
function (
    PopupTemplate, Graphic, ....) {

var point = {
    type: "point",
    x: <some x>,
    y: <some y>
 };    

var symbol = {
   type: "picture-marker",
   url: "/euf/assets/nl/images/red-pin.png",
   width: "30px",
   height: "30px"
};

var template = new PopupTemplate({
    title: "New Title",
    content: "New Content"
});

var graphic = new Graphic({
    geometry: point,
    symbol: symbol,
    popupTemplate: template
});
view.graphics.add(graphic); // this works as I can see the marker on page

// now, how do I trigger its click event here?
});

您应该使用 view.popup.open 并传递属性 locationfeatures:

view.popup.open({
    location: point,
    features: [graphic]
});

Example here.

这是我用多边形的信息窗口做的一个例子。

    var infoTemplate = new InfoTemplate();

    var selectedState = Graphic(geometry,highlightSymbol,attributes,infoTemplate);

    this.map.graphics.add(selectedState);
    this.map.infoWindow.setFeatures([selectedState]);
    this.map.infoWindow.show(this.map.toScreen(geometry.getExtent().getCenter()));