<?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 custom basemap gallery widget could not change the main map. HELP! in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/custom-basemap-gallery-widget-could-not-change-the/m-p/451022#M41677</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi.. I'm a first time user of the ArcGIS API for javascript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My custom BasemapGallery widget, an slightly altered version of the BasemapGallery widget example in the documentation website &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/widget_basemap.html" rel="nofollow noopener noreferrer" target="_blank"&gt;link&lt;/A&gt;&lt;SPAN&gt; does not change the basemap of my main map like the example.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What did I do wrong. What am I missing. Help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Description:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Using API 3.4 but using dojo 1.6 non-AMD style coding.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wanted to modularize&amp;nbsp; my webmap to be as much as possible so separated the html and javascript code for BasemapGallery into separate custom widgets. I going to use a lot of layers and I don't want to clutter up the main javascript file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Essentially, I just wrapped the same code that would go in the map web map HTML and javascript into a widget package call customWidget.BasemapGallery&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was successful in making creating a TitlePane that opens up to a BaseMapGallery but that's as far as I went. Whenever I click on a image of a map. The main map doesn't change.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JAVASCRIPT portion of the main map&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

app.map = new esri.Map(
&amp;nbsp; "mapDiv", 
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; center: [-64.46968730, 45.08473950], //Kentville, Nova Scotia, Canada
&amp;nbsp;&amp;nbsp; zoom: 13,
&amp;nbsp;&amp;nbsp; logo: false,
&amp;nbsp;&amp;nbsp; showAttribution: false,
&amp;nbsp;&amp;nbsp; slider: true,
&amp;nbsp;&amp;nbsp; sliderStyle: "large",
&amp;nbsp;&amp;nbsp; basemap: "streets"
&amp;nbsp; }
 );

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;HTML of the widget: BasemapGallery.html&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;div class="${baseClass}"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;div id="baseMapGalleryTitlePane"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div data-dojo-type="dijit.layout.ContentPane" style="width:380px; height:280px; overflow:auto;"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id="basemapGalleryDiv" &amp;gt;&amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JAVASCRIPT&amp;nbsp; of the widget: BasemapGallery.js&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

dojo.provide("customWidget.BasemapGallery");

//required library imports from esri
dojo.require("esri.dijit.Basemap");
dojo.require("esri.dijit.BasemapLayer");
dojo.require("esri.dijit.BasemapGallery");

//required library imports from dojo
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.require("dijit.TitlePane");
dojo.require("dijit.layout.ContentPane");
 
dojo.declare("customWidget.BasemapGallery", [dijit._Widget, dijit._Templated], {
 name: 'No Name',
 templateString: dojo.cache('customWidget.BasemapGallery', 'templates/BasemapGallery.html'),
 baseClass: "BasemapGalleryBase",
 title: "",

 postCreate: function(){
&amp;nbsp; /*
&amp;nbsp;&amp;nbsp; * add basemap basemapgallery widget.
&amp;nbsp;&amp;nbsp; * need to be the same extent
&amp;nbsp;&amp;nbsp; */
&amp;nbsp; createBasemapGallery();
 },
});

// build the basemap gallery
function createBasemapGallery(){
 var tp = new dijit.TitlePane(
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; title:'Switch Basemap', 
&amp;nbsp;&amp;nbsp; closable:false, 
&amp;nbsp;&amp;nbsp; open:false
&amp;nbsp; }, 
&amp;nbsp; dojo.byId("baseMapGalleryTitlePane")
 );

 var map = dojo.byId("mapDiv");

 var basemapGallery = new esri.dijit.BasemapGallery(
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; bingMapKey: "AnwMNXxXUVsOh1xEmG_i6D_ajxScpoxwwXQHTdOjBM5NcPzXsxhxkVU6dq_Hr4Gw",
&amp;nbsp;&amp;nbsp; map: map,
&amp;nbsp;&amp;nbsp; showArcGISBasemaps: true
&amp;nbsp; }, 
&amp;nbsp; "basemapGalleryDiv"
 );
 //basemapGallery.basemaps = basemaps;
 basemapGallery.startup();
 
}

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;HELP HELP.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 20:08:08 GMT</pubDate>
    <dc:creator>AllenHuang</dc:creator>
    <dc:date>2021-12-11T20:08:08Z</dc:date>
    <item>
      <title>custom basemap gallery widget could not change the main map. HELP!</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/custom-basemap-gallery-widget-could-not-change-the/m-p/451022#M41677</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi.. I'm a first time user of the ArcGIS API for javascript.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My custom BasemapGallery widget, an slightly altered version of the BasemapGallery widget example in the documentation website &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/widget_basemap.html" rel="nofollow noopener noreferrer" target="_blank"&gt;link&lt;/A&gt;&lt;SPAN&gt; does not change the basemap of my main map like the example.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What did I do wrong. What am I missing. Help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Description:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Using API 3.4 but using dojo 1.6 non-AMD style coding.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wanted to modularize&amp;nbsp; my webmap to be as much as possible so separated the html and javascript code for BasemapGallery into separate custom widgets. I going to use a lot of layers and I don't want to clutter up the main javascript file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Essentially, I just wrapped the same code that would go in the map web map HTML and javascript into a widget package call customWidget.BasemapGallery&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was successful in making creating a TitlePane that opens up to a BaseMapGallery but that's as far as I went. Whenever I click on a image of a map. The main map doesn't change.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JAVASCRIPT portion of the main map&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

app.map = new esri.Map(
&amp;nbsp; "mapDiv", 
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; center: [-64.46968730, 45.08473950], //Kentville, Nova Scotia, Canada
&amp;nbsp;&amp;nbsp; zoom: 13,
&amp;nbsp;&amp;nbsp; logo: false,
&amp;nbsp;&amp;nbsp; showAttribution: false,
&amp;nbsp;&amp;nbsp; slider: true,
&amp;nbsp;&amp;nbsp; sliderStyle: "large",
&amp;nbsp;&amp;nbsp; basemap: "streets"
&amp;nbsp; }
 );

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;HTML of the widget: BasemapGallery.html&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;div class="${baseClass}"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;div id="baseMapGalleryTitlePane"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;div data-dojo-type="dijit.layout.ContentPane" style="width:380px; height:280px; overflow:auto;"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id="basemapGalleryDiv" &amp;gt;&amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/div&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JAVASCRIPT&amp;nbsp; of the widget: BasemapGallery.js&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

dojo.provide("customWidget.BasemapGallery");

//required library imports from esri
dojo.require("esri.dijit.Basemap");
dojo.require("esri.dijit.BasemapLayer");
dojo.require("esri.dijit.BasemapGallery");

//required library imports from dojo
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.require("dijit.TitlePane");
dojo.require("dijit.layout.ContentPane");
 
dojo.declare("customWidget.BasemapGallery", [dijit._Widget, dijit._Templated], {
 name: 'No Name',
 templateString: dojo.cache('customWidget.BasemapGallery', 'templates/BasemapGallery.html'),
 baseClass: "BasemapGalleryBase",
 title: "",

 postCreate: function(){
&amp;nbsp; /*
&amp;nbsp;&amp;nbsp; * add basemap basemapgallery widget.
&amp;nbsp;&amp;nbsp; * need to be the same extent
&amp;nbsp;&amp;nbsp; */
&amp;nbsp; createBasemapGallery();
 },
});

// build the basemap gallery
function createBasemapGallery(){
 var tp = new dijit.TitlePane(
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; title:'Switch Basemap', 
&amp;nbsp;&amp;nbsp; closable:false, 
&amp;nbsp;&amp;nbsp; open:false
&amp;nbsp; }, 
&amp;nbsp; dojo.byId("baseMapGalleryTitlePane")
 );

 var map = dojo.byId("mapDiv");

 var basemapGallery = new esri.dijit.BasemapGallery(
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; bingMapKey: "AnwMNXxXUVsOh1xEmG_i6D_ajxScpoxwwXQHTdOjBM5NcPzXsxhxkVU6dq_Hr4Gw",
&amp;nbsp;&amp;nbsp; map: map,
&amp;nbsp;&amp;nbsp; showArcGISBasemaps: true
&amp;nbsp; }, 
&amp;nbsp; "basemapGalleryDiv"
 );
 //basemapGallery.basemaps = basemaps;
 basemapGallery.startup();
 
}

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;HELP HELP.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:08:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/custom-basemap-gallery-widget-could-not-change-the/m-p/451022#M41677</guid>
      <dc:creator>AllenHuang</dc:creator>
      <dc:date>2021-12-11T20:08:08Z</dc:date>
    </item>
    <item>
      <title>Re: custom basemap gallery widget could not change the main map. HELP!</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/custom-basemap-gallery-widget-could-not-change-the/m-p/451023#M41678</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Mystery solved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The reason the widget didn't effect the main map is because the widget did not have a link to the main map.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Even thought the widget calls the main map by &lt;/SPAN&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;dojo.byId("mapDiv")&lt;/PRE&gt;&lt;SPAN&gt;, it is still a separate event.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To solve this I did this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. I added a parameter to my support function &lt;/SPAN&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function createBasemapGallery(map)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. I created a widget function&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

 setupBasemapGallery: function(mainMap){
&amp;nbsp; /*
&amp;nbsp;&amp;nbsp; * add basemap basemapgallery widget.
&amp;nbsp;&amp;nbsp; * need to be the same extent
&amp;nbsp;&amp;nbsp; */
&amp;nbsp; createBasemapGallery(mainMap);
 }

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. in my main JAVASCRIPT I call the dijit element on my main HTML and call setupBasemapGallery&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

 app.customBasemapGallery = dijit.byId("customBasemapGallery");
 app.customBasemapGallery.setupBasemapGallery(app.map);

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:08:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/custom-basemap-gallery-widget-could-not-change-the/m-p/451023#M41678</guid>
      <dc:creator>AllenHuang</dc:creator>
      <dc:date>2021-12-11T20:08:10Z</dc:date>
    </item>
  </channel>
</rss>

