¿Es posible incrustar el visor de mapas web en una aplicación web personalizada y permitir que los usuarios creen mapas web?
Me gustaría hacer algo parecido a lo que se puede hacer en varios story maps (como Journal, Cascade, ...), algo así:

Como pueden observar, el visor está incrustado y hay un «botón Guardar» fuera (por alguna razón, el botón para guardar predeterminado no aparece cuando se incrusta el visor).
Entonces, descargué el código fuente de storymap-journal e intenté hacer lo mismo en localhost, y recibí este mensaje:

Eso fue desconcertante, ¿por qué ocurre? ¿Es para evitar problemas con las cookies?
Para entender cómo está implementado el botón «Guardar», abrí la consola y vi un mensaje de depuración cuando hice clic en él. Luego revisé el código fuente y encontré la función que se llama en el archivo MapViewerWrapper.js:
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>send <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>json<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"MV sending"</SPAN><SPAN class="punctuation token">,</SPAN> json<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">try</SPAN> <SPAN class="punctuation token">{</SPAN>
params<SPAN class="punctuation token">.</SPAN>frameWindow<SPAN class="punctuation token">.</SPAN><SPAN class="token function">postMessage</SPAN><SPAN class="punctuation token">(</SPAN>JSON<SPAN class="punctuation token">.</SPAN><SPAN class="token function">stringify</SPAN><SPAN class="punctuation token">(</SPAN>json<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> MapViewerWrapperUtils<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getPortalURL</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">catch</SPAN> <SPAN class="punctuation token">(</SPAN> error <SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// Parece que esto no se ejecuta, ya que el error se produciría en el frame</SPAN>
params<SPAN class="punctuation token">.</SPAN><SPAN class="token function">onError</SPAN><SPAN class="punctuation token">(</SPAN>error <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>Al depurar, comprobé el objeto «json» y contiene algo como esto:
<SPAN class="punctuation token">{</SPAN>type<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"hasUnsavedChanges"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>Y «MapViewerWrapperUtils.getPortalURL()» devuelve:
<SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fhhkaos.maps.arcgis.com" target="_blank">http://hhkaos.maps.arcgis.com</A><SPAN>"</SPAN></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
No creo que sea un problema entre dominios con postMessage, ¿verdad?
Solo quería preguntar si alguno de ustedes ha intentado hacer lo que quiero o sabe si es posible.
Gracias de antemano:
Raul
PD: Lo intenté hace dos años, cuando el «botón Guardar» todavía estaba dentro del iframe, pero creo que lo quitaron en una actualización de ArcGIS Online.