Hello, I'm trying to create an editing web map that will automatically update the coordinates of an added/moved point and also allow manual edits to other attributes. I was able to get the coordinates to update, based on this code I found on stack exchange.
Below is what I have in my HTML and seems to work whenever I add or move a point.
dojo<SPAN class="punctuation token">.</SPAN><SPAN class="token function">forEach</SPAN><SPAN class="punctuation token">(</SPAN>featLayers<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>feature<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
feature<SPAN class="punctuation token">.</SPAN><SPAN class="token function">on</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"before-apply-edits"</SPAN><SPAN class="punctuation token">,</SPAN> updateCoordinates<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN><SPAN class="keyword token">function</SPAN> <SPAN class="token function">updateCoordinates</SPAN><SPAN class="punctuation token">(</SPAN>evt<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> toAdd <SPAN class="operator token">=</SPAN> evt<SPAN class="punctuation token">.</SPAN>adds<SPAN class="punctuation token">;</SPAN>
dojo<SPAN class="punctuation token">.</SPAN><SPAN class="token function">forEach</SPAN><SPAN class="punctuation token">(</SPAN>toAdd<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>add<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
add<SPAN class="punctuation token">.</SPAN>attributes<SPAN class="punctuation token">.</SPAN>point_y <SPAN class="operator token">=</SPAN> add<SPAN class="punctuation token">.</SPAN>geometry<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getLatitude</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
add<SPAN class="punctuation token">.</SPAN>attributes<SPAN class="punctuation token">.</SPAN>point_x <SPAN class="operator token">=</SPAN> add<SPAN class="punctuation token">.</SPAN>geometry<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getLongitude</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> toUpdate <SPAN class="operator token">=</SPAN> evt<SPAN class="punctuation token">.</SPAN>updates<SPAN class="punctuation token">;</SPAN>
dojo<SPAN class="punctuation token">.</SPAN><SPAN class="token function">forEach</SPAN><SPAN class="punctuation token">(</SPAN>toUpdate<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>update<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
update<SPAN class="punctuation token">.</SPAN>attributes<SPAN class="punctuation token">.</SPAN>point_y <SPAN class="operator token">=</SPAN> update<SPAN class="punctuation token">.</SPAN>geometry<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getLatitude</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
update<SPAN class="punctuation token">.</SPAN>attributes<SPAN class="punctuation token">.</SPAN>point_x <SPAN class="operator token">=</SPAN> update<SPAN class="punctuation token">.</SPAN>geometry<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getLongitude</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>However, when I manually type in text for another attribute that is entered during the editing, I get these error messages in the console as shown in the attached graphic. Line #305 in the console refers to the above code line #10 update.attributes.point_y = update.geometry.getLatitude();
The attributes I manually update are not saved most of the time.
Any help is much appreciated!