如何触发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 并传递属性 location
和 features
:
view.popup.open({
location: point,
features: [graphic]
});
这是我用多边形的信息窗口做的一个例子。
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()));
我正在使用 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 并传递属性 location
和 features
:
view.popup.open({
location: point,
features: [graphic]
});
这是我用多边形的信息窗口做的一个例子。
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()));