Ich verwende ArcGIS JS API 4.0 mit eckigen. Im Popup-Fenster habe ich die benutzerdefinierte Schaltfläche Mehr Details hinzugefügt. Auf den Klick dieser Schaltfläche möchte ich den Pin auf der Karte anzeigen. Ich finde nicht viele Online-Beispiele, um dies zu erreichen, kann jemand helfen?Pin nach dem Klicken auf die benutzerdefinierte Schaltfläche im Popup auf der Karte anzeigen
Antwort
Wenn ich richtig verstanden habe, ist Ihr Problem, den Ort des Klicks innerhalb der Aktionsmethode zu erhalten.
Wenn ja, können Sie den Speicherort aus der view.popup.location abrufen. Das ist eine Punktgeometrie. Damit können Sie der Ebene oder der Karte eine neue Grafik hinzufügen. Ich habe nicht mit AngularJS gearbeitet. also wäre nicht in der Lage, Ihnen eine Probe zu liefern. Aber mit den verfügbaren Ortsangaben sollte es einfach sein, ein Beispiel zu finden, um eine Grafik hinzuzufügen.
Edit: Dieses Beispiel ist besser geeignet. https://developers.arcgis.com/javascript/latest/sample-code/get-started-graphics/index.html
Vielen Dank für Ihre schnelle Antwort. Ihre Antwort hat mir sehr geholfen. Ich finde es immer noch sehr schwierig, den Popup-Ort zu speichern und dann den Pin zu zeigen, wenn auf die benutzerdefinierte Schaltfläche im Popup geklickt wird. Wenn Sie es wissen, lassen Sie es mich wissen. Ich habe jedoch meine Lösung implementiert, um den Pin anzuzeigen, sobald das Feature auf der Karte angeklickt wird. Hier ist der Code dafür.
self.mapView.on("click", function (event) {
self.mapView.graphics.removeAll();
// I added this line to make sure the previous pin is removed if the new
//feature is clicked. If there is a better way to handle it, let me know.
// Create a symbol for drawing the point
var markerSymbol = new SimpleMarkerSymbol({
color: [226, 119, 40],
outline: { // autocasts as new SimpleLineSymbol()
color: [255, 255, 255],
width: 2
}
});
// Create a graphic and add the geometry and symbol to it
var pointGraphic = new Graphic({
geometry: event.mapPoint,
symbol: markerSymbol
});
self.mapView.graphics.addMany([pointGraphic]);
});
Sie können zum trigger-action
auf dem Popup reagieren und dann die view.popup.location
verwenden, wie bereits erwähnt,
view.popup.on("trigger-action", function(evt){
if(evt.action.id === "more-details"){
// add graphic at view.popup.location
}
});
Danke, das hat funktioniert. –
ich einen Pin ähnlich zeigen will, was mit dem Google Maps angezeigt wird. Wenn ich auf den Feature-Layer klicke, wird das Popup-Fenster angezeigt. Ich habe dem Pop-up eine benutzerdefinierte Schaltfläche hinzugefügt. Beim Klicken auf diesen Button möchte ich einen Pin auf der Karte für diesen Ort anzeigen, ähnlich wie gezeigt auf den Google Maps. https://www.google.com/maps/place/Fairwood+Greens+Homeowners'+Association/@47.4431266,-122.1181985,14z/data=!4m5!3m4!1s0x000000000000000000:0xafd533eecd9683ae!8m2!3d47.4543555!4d- 122.1100867 –
Wie bereits erwähnt, können Sie dies erreichen, indem Sie Ihrer Ansicht eine Grafik hinzufügen. Um den Pin zu erhalten, können Sie PictureMarkerSymbol verwenden, um diesen Stil zu erhalten. Verwenden Sie die Eigenschaften "xoffset" und "yoffset", um den Punkt im Bild mit dem Punkt zu verbinden. –
Danke, lass mich diese Lösung versuchen. –