<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!--The viewport meta tag is used to improve the presentation and behavior of the samples on iOS devices--> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/> <title></title> <link rel="stylesheet" href="http://js.arcgis.com/3.8/js/dojo/dijit/themes/claro/claro.css"> <link rel="stylesheet" href="http://js.arcgis.com/3.8/js/esri/css/esri.css"> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } #map{ padding:0; } </style> <script src="http://js.arcgis.com/3.8/"></script> <script> var map; require([ "esri/map", "esri/dijit/BasemapGallery", "esri/arcgis/utils", "dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/TitlePane", "dojo/domReady!" ], function( Map, BasemapGallery, arcgisUtils, parser ) { parser.parse(); map = new Map("map", { basemap: "topo", center: [-105.255, 40.022], zoom: 13 }); //add the basemap gallery, in this case we'll display maps from ArcGIS.com including bing maps var basemapGallery = new BasemapGallery({ showArcGISBasemaps: true, map: map }, "basemapGallery"); basemapGallery.startup(); basemapGallery.on("error", function(msg) { console.log("basemap gallery error: ", msg); }); }); </script> </head> <body class="claro"> <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline', gutters:false" style="width:100%;height:100%;margin:0;"> <div id="map" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" style="padding:0;"> <div style="position:absolute; right:20px; top:10px; z-Index:999;"> <div data-dojo-type="dijit/TitlePane" data-dojo-props="title:'Switch Basemap', closable:false, open:false"> <div data-dojo-type="dijit/layout/ContentPane" style="width:380px; height:280px; overflow:auto;"> <div id="basemapGallery" ></div></div> </div> </div> </div> </div> </body> </html>
Solved! Go to Solution.
That code works properly in this JSBin. What are your issues?
Alex,
the basemaps won't show up if you just open your textfile as an html. The only way you can test it is, if you put the html file in your
\inetpub\wwwroot folder, open your browser and then use <computername>/yourmap.html
Hope this helps!
Tim
hi alex,
the problem is caused by the fact that you are loading your application in the browser using file protocol rather than http (as required).
the console is telling you that it doesn't want to load thumbnails retrieved from arcgis.com this way.
require([ "esri/map", "esri/config", "esri/dijit/Scalebar", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/dijit/BasemapGallery", "esri/arcgis/utils", "esri/tasks/Geoprocessor", "esri/tasks/FeatureSet", "esri/toolbars/draw", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "esri/graphic", "dojo/_base/Color", "dojo/dom", "dojo/dom-style", "dojo/query", "dojo/parser", "dijit/registry", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/TitlePane", "dijit/form/CheckBox", "dijit/form/ComboBox", "dojo/domReady!" ], function( Map, esriConfig, BasemapGallery, arcgisUtils, Scalebar, ArcGISDynamicMapServiceLayer, Geoprocessor, FeatureSet, Draw, SimpleFillSymbol, SimpleLineSymbol, Graphic, Color, dom, domStyle, query, parser, registry ) { // Create all dijits. parser.parse(); // Prevent flash of unstyled content(FOUC). domStyle.set(query("body")[0], "visibility", "visible"); // Specify where the location of the proxy to use to communicate with the extract GP service. esriConfig.defaults.io.proxyUrl = "/proxy"; // Keep a reference to the loading icon DOM node. var loading = dom.byId("loading"); map = new Map("map", { logo:false, basemap: "streets", center: [-121.469, 38.556], zoom: 8 }); var basemapGallery = new BasemapGallery({ showArcGISBasemaps: true, map: map }, "basemapGallery"); basemapGallery.startup(); basemapGallery.on("error", function(msg) { console.log("basemap gallery error: ", msg); }); var scalebar = new Scalebar({ map: map, // "dual" displays both miles and kilmometers // "english" is the default, which displays miles // use "metric" for kilometers scalebarUnit: "dual" });