2016-05-25 4 views

Antwort

0

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

+0

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 –

+0

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. –

+0

Danke, lass mich diese Lösung versuchen. –

0

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]); 

       }); 
0

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 
    } 
}); 
+0

Danke, das hat funktioniert. –