<?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 Re: Cloning basemap makes it blank (4.33) in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1673402#M87974</link>
    <description>&lt;P&gt;Turns out I was getting a "Basemap already destroyed" error. The basemaps were being destroyed by the first map and weren't able to be used again. The solution I got to was making a function&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;export const GenerateLocalBasemapsSource = () =&amp;gt; { &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const topovector = Basemap.fromId("topo-vector") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const streets = Basemap.fromId("streets") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const satellite = Basemap.fromId("satellite") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;return new LocalBasemapsSource({basemaps: [ satellite, topovector, streets ]}) }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Then calling the function to get the source for my basemap gallery like so:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;arcgis-basemap-gallery source={GenerateLocalBasemapsSource()}/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 16 Dec 2025 19:31:29 GMT</pubDate>
    <dc:creator>alc381</dc:creator>
    <dc:date>2025-12-16T19:31:29Z</dc:date>
    <item>
      <title>Cloning basemap makes it blank (4.33)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1651291#M87626</link>
      <description>&lt;P&gt;I'm working on a web app that has multiple mapviews, built on node (so not using CDN). We have one primary map that has a basemap selector, and I'd like to propagate the basemap that one is using to others. As the user moves around the app, there are instances where maps are destroyed and removed from the page, and I'd prefer to just recreate new resources rather than have to write code for each to remove things like the basemap before calling .destroy().&lt;/P&gt;&lt;P&gt;---------------------&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// ESRI basemap is so nice...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;defaultBasemap&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt;({&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;style&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;BasemapStyle&lt;/SPAN&gt;&lt;SPAN&gt;({&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"arcgis/topographic"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;worldview&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"unitedStatesOfAmerica"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; })&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;});&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/** The BasemapController class is used to handle updating all map basemaps and change them all when the main map one is changed. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;export&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; &lt;SPAN&gt;BasemapController&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;/** The current basemap in use. */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;_currentBasemap&lt;/SPAN&gt; &lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;/** Returns the current basemap. Unless the user chooses a different one, this will be the DefaultBasemap(). */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;GetCurrentBasemap&lt;/SPAN&gt;&lt;SPAN&gt;() &lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;_currentBasemap&lt;/SPAN&gt; &lt;SPAN&gt;==&lt;/SPAN&gt; &lt;SPAN&gt;null&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;_currentBasemap&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;_getDefaultBasemap&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Return clone so if it is destroyed it doesn't blow up the rest&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;let&lt;/SPAN&gt; &lt;SPAN&gt;clone&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;_currentBasemap&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;clone&lt;/SPAN&gt;&lt;SPAN&gt;(); // Invoking .clone() makes the returned one not draw&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;clone&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;====================&lt;BR /&gt;// Usage:&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.mainMap&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Map&lt;/SPAN&gt;&lt;SPAN&gt;({&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;basemap&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;BasemapController&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GetCurrentBasemap&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;====================&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I don't understand why this occurring. Is this a bug in the SDK? I see nothing in the output on the console.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2025 22:16:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1651291#M87626</guid>
      <dc:creator>mjperez-usgs</dc:creator>
      <dc:date>2025-09-17T22:16:40Z</dc:date>
    </item>
    <item>
      <title>Re: Cloning basemap makes it blank (4.33)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1673020#M87973</link>
      <description>&lt;P&gt;I have the same issue using the same&amp;nbsp;&lt;SPAN&gt;LocalBasemapsSource for two maps. I tried making two identical variables, but that also did not work.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;topovector&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;fromId&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"topo-vector"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;streets&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;fromId&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"streets"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;satellite&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;fromId&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"satellite"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt; &lt;SPAN&gt;Basemap&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;export&lt;/SPAN&gt; &lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;basemapssource&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;LocalBasemapsSource&lt;/SPAN&gt;&lt;SPAN&gt;({&lt;/SPAN&gt;&lt;SPAN&gt;basemaps&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [ &lt;/SPAN&gt;&lt;SPAN&gt;satellite&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;topovector&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;streets&lt;/SPAN&gt;&lt;SPAN&gt; ]})&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Then, I added&amp;nbsp;export const startbasemapssource = new LocalBasemapsSource({basemaps: [ satellite, topovector, streets ]}) for the "start" map, but that did not fix the problem.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;This happened to me in 4.34. I had to downgrade to 4.33 for another issue and this problem is still there.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Dec 2025 15:18:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1673020#M87973</guid>
      <dc:creator>alc381</dc:creator>
      <dc:date>2025-12-15T15:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: Cloning basemap makes it blank (4.33)</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1673402#M87974</link>
      <description>&lt;P&gt;Turns out I was getting a "Basemap already destroyed" error. The basemaps were being destroyed by the first map and weren't able to be used again. The solution I got to was making a function&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;export const GenerateLocalBasemapsSource = () =&amp;gt; { &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const topovector = Basemap.fromId("topo-vector") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const streets = Basemap.fromId("streets") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;const satellite = Basemap.fromId("satellite") as Basemap &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;return new LocalBasemapsSource({basemaps: [ satellite, topovector, streets ]}) }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Then calling the function to get the source for my basemap gallery like so:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;arcgis-basemap-gallery source={GenerateLocalBasemapsSource()}/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Dec 2025 19:31:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/cloning-basemap-makes-it-blank-4-33/m-p/1673402#M87974</guid>
      <dc:creator>alc381</dc:creator>
      <dc:date>2025-12-16T19:31:29Z</dc:date>
    </item>
  </channel>
</rss>

