<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Edit graphics on GraphicsLayer in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/edit-graphics-on-graphicslayer/m-p/266739#M24632</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like some help please.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an application which enables a user to draw a polyline on a map. Through JavaScript, on draw end this polyline is added as a graphic on a graphics layer. What I can't figure out is how can a user edit the vertices of this polyline once it has been added to the GraphicsLayer? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my code so far:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if (evt.geometry.type === "polyline") {

&amp;nbsp; if (map.getScale() &amp;lt; MAP_SCALE) {

&amp;nbsp; var symbol = new SimpleMarkerSymbol();
&amp;nbsp; var fillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 0, 128]), 3));

&amp;nbsp; symbol = fillSymbol;

&amp;nbsp; polylineLayerGL = new GraphicsLayer();


&amp;nbsp; pipeGraphic = new Graphic(evt.geometry, symbol);
&amp;nbsp; polylineLayerGL.add(pipeGraphic);
&amp;nbsp; map.addLayer(polylineLayerGL);


&amp;nbsp; pipeCount += 1;


&amp;nbsp; //custAttribInsp(evt);
&amp;nbsp; } else {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
}&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To edit: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function initEditor(evt) {
&amp;nbsp; console.log("initEditing", evt);
&amp;nbsp; // var map = this;
&amp;nbsp; var currentLayer = null;
&amp;nbsp; var layers = arrayUtils.map(evt.layers, function(result) {
&amp;nbsp; return result.layer;
&amp;nbsp; });
&amp;nbsp; console.log("layers", layers);


&amp;nbsp; var editToolbar = new Edit(map);
&amp;nbsp; editToolbar.on("deactivate", function(evt) {
&amp;nbsp; currentLayer.applyEdits(null, [evt.graphic], null);
&amp;nbsp; });


&amp;nbsp; arrayUtils.forEach(layers, function(layer) {
&amp;nbsp; var editingEnabled = false;
&amp;nbsp; layer.on("dbl-click", function(evt) {
&amp;nbsp; event.stop(evt);
&amp;nbsp; if (editingEnabled === false) {
&amp;nbsp; editingEnabled = true;
&amp;nbsp; editToolbar.activate(Edit.EDIT_VERTICES , evt.graphic);
&amp;nbsp; } else {
&amp;nbsp; currentLayer = this;
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; editingEnabled = false;
&amp;nbsp; }
&amp;nbsp; });


&amp;nbsp; layer.on("click", function(evt) {
&amp;nbsp; event.stop(evt);
&amp;nbsp; if (evt.ctrlKey === true || evt.metaKey === true) {&amp;nbsp; //delete feature if ctrl key is depressed
&amp;nbsp; layer.applyEdits(null,null,[evt.graphic]);
&amp;nbsp; currentLayer = this;
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; editingEnabled=false;
&amp;nbsp; }
&amp;nbsp; });
&amp;nbsp; });


&amp;nbsp; var templatePicker = new TemplatePicker({
&amp;nbsp; featureLayers: layers,
&amp;nbsp; rows: "auto",
&amp;nbsp; columns: 2,
&amp;nbsp; grouping: true,
&amp;nbsp; style: "height: auto; overflow: auto;"
&amp;nbsp; }, "templatePickerDiv");


&amp;nbsp; templatePicker.startup();


&amp;nbsp; var drawToolbar = new Draw(map);


&amp;nbsp; var selectedTemplate;
&amp;nbsp; templatePicker.on("selection-change", function() {
&amp;nbsp; if( templatePicker.getSelected() ) {
&amp;nbsp; selectedTemplate = templatePicker.getSelected();
&amp;nbsp; }
&amp;nbsp; switch (selectedTemplate.featureLayer.geometryType) {
&amp;nbsp; case "esriGeometryPoint":
&amp;nbsp; drawToolbar.activate(Draw.POINT);
&amp;nbsp; break;
&amp;nbsp; case "esriGeometryPolyline":
&amp;nbsp; drawToolbar.activate(Draw.POLYLINE);
&amp;nbsp; break;
&amp;nbsp; case "esriGeometryPolygon":
&amp;nbsp; drawToolbar.activate(Draw.POLYGON);
&amp;nbsp; break;
&amp;nbsp; }
&amp;nbsp; });


&amp;nbsp; drawToolbar.on("draw-end", function(evt) {
&amp;nbsp; drawToolbar.deactivate();
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; var newAttributes = lang.mixin({}, selectedTemplate.template.prototype.attributes);
&amp;nbsp; var newGraphic = new Graphic(evt.geometry, null, newAttributes);
&amp;nbsp; selectedTemplate.featureLayer.applyEdits([newGraphic], null, null);
&amp;nbsp; });

&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, nothing is happening. Any suggestions please.@&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;frank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 13:05:42 GMT</pubDate>
    <dc:creator>FrankyFergus</dc:creator>
    <dc:date>2021-12-11T13:05:42Z</dc:date>
    <item>
      <title>Edit graphics on GraphicsLayer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/edit-graphics-on-graphicslayer/m-p/266739#M24632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like some help please.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an application which enables a user to draw a polyline on a map. Through JavaScript, on draw end this polyline is added as a graphic on a graphics layer. What I can't figure out is how can a user edit the vertices of this polyline once it has been added to the GraphicsLayer? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my code so far:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if (evt.geometry.type === "polyline") {

&amp;nbsp; if (map.getScale() &amp;lt; MAP_SCALE) {

&amp;nbsp; var symbol = new SimpleMarkerSymbol();
&amp;nbsp; var fillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 0, 128]), 3));

&amp;nbsp; symbol = fillSymbol;

&amp;nbsp; polylineLayerGL = new GraphicsLayer();


&amp;nbsp; pipeGraphic = new Graphic(evt.geometry, symbol);
&amp;nbsp; polylineLayerGL.add(pipeGraphic);
&amp;nbsp; map.addLayer(polylineLayerGL);


&amp;nbsp; pipeCount += 1;


&amp;nbsp; //custAttribInsp(evt);
&amp;nbsp; } else {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
}&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To edit: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function initEditor(evt) {
&amp;nbsp; console.log("initEditing", evt);
&amp;nbsp; // var map = this;
&amp;nbsp; var currentLayer = null;
&amp;nbsp; var layers = arrayUtils.map(evt.layers, function(result) {
&amp;nbsp; return result.layer;
&amp;nbsp; });
&amp;nbsp; console.log("layers", layers);


&amp;nbsp; var editToolbar = new Edit(map);
&amp;nbsp; editToolbar.on("deactivate", function(evt) {
&amp;nbsp; currentLayer.applyEdits(null, [evt.graphic], null);
&amp;nbsp; });


&amp;nbsp; arrayUtils.forEach(layers, function(layer) {
&amp;nbsp; var editingEnabled = false;
&amp;nbsp; layer.on("dbl-click", function(evt) {
&amp;nbsp; event.stop(evt);
&amp;nbsp; if (editingEnabled === false) {
&amp;nbsp; editingEnabled = true;
&amp;nbsp; editToolbar.activate(Edit.EDIT_VERTICES , evt.graphic);
&amp;nbsp; } else {
&amp;nbsp; currentLayer = this;
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; editingEnabled = false;
&amp;nbsp; }
&amp;nbsp; });


&amp;nbsp; layer.on("click", function(evt) {
&amp;nbsp; event.stop(evt);
&amp;nbsp; if (evt.ctrlKey === true || evt.metaKey === true) {&amp;nbsp; //delete feature if ctrl key is depressed
&amp;nbsp; layer.applyEdits(null,null,[evt.graphic]);
&amp;nbsp; currentLayer = this;
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; editingEnabled=false;
&amp;nbsp; }
&amp;nbsp; });
&amp;nbsp; });


&amp;nbsp; var templatePicker = new TemplatePicker({
&amp;nbsp; featureLayers: layers,
&amp;nbsp; rows: "auto",
&amp;nbsp; columns: 2,
&amp;nbsp; grouping: true,
&amp;nbsp; style: "height: auto; overflow: auto;"
&amp;nbsp; }, "templatePickerDiv");


&amp;nbsp; templatePicker.startup();


&amp;nbsp; var drawToolbar = new Draw(map);


&amp;nbsp; var selectedTemplate;
&amp;nbsp; templatePicker.on("selection-change", function() {
&amp;nbsp; if( templatePicker.getSelected() ) {
&amp;nbsp; selectedTemplate = templatePicker.getSelected();
&amp;nbsp; }
&amp;nbsp; switch (selectedTemplate.featureLayer.geometryType) {
&amp;nbsp; case "esriGeometryPoint":
&amp;nbsp; drawToolbar.activate(Draw.POINT);
&amp;nbsp; break;
&amp;nbsp; case "esriGeometryPolyline":
&amp;nbsp; drawToolbar.activate(Draw.POLYLINE);
&amp;nbsp; break;
&amp;nbsp; case "esriGeometryPolygon":
&amp;nbsp; drawToolbar.activate(Draw.POLYGON);
&amp;nbsp; break;
&amp;nbsp; }
&amp;nbsp; });


&amp;nbsp; drawToolbar.on("draw-end", function(evt) {
&amp;nbsp; drawToolbar.deactivate();
&amp;nbsp; editToolbar.deactivate();
&amp;nbsp; var newAttributes = lang.mixin({}, selectedTemplate.template.prototype.attributes);
&amp;nbsp; var newGraphic = new Graphic(evt.geometry, null, newAttributes);
&amp;nbsp; selectedTemplate.featureLayer.applyEdits([newGraphic], null, null);
&amp;nbsp; });

&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, nothing is happening. Any suggestions please.@&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;frank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 13:05:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/edit-graphics-on-graphicslayer/m-p/266739#M24632</guid>
      <dc:creator>FrankyFergus</dc:creator>
      <dc:date>2021-12-11T13:05:42Z</dc:date>
    </item>
  </channel>
</rss>

