function createBasemapGallery() { var basemapGallery = new BasemapGallery({ showArcGISBasemaps: true, map: map }); connect.connect(basemapGallery, 'onLoad', function () { array.forEach(basemapGallery.basemaps, function (basemap) dom.byId('basemapMenu').addChild(new dijit.MenuItem({ label: basemap.title, onClick: lang.hitch(this, function(){ this.basemapGallery.select(basemap.id); }) })); }); }); } Solved! Go to Solution.
// Create custom list of basemaps for the gallery
var basemapsList = [];
var basemapAerial = new Basemap({
layers : [new BasemapLayer({
type : "BingMapsAerial"
})],
title : "Aerial",
thumbnailUrl : "images/bingMapsAerial.png"
});
basemapsList.push(basemapAerial);
var basemapHybrid = new Basemap({
layers : [new BasemapLayer({
type : "BingMapsHybrid"
})],
title : "Hybrid",
thumbnailUrl : "images/bingMapsHybrid.png"
});
basemapsList.push(basemapHybrid);
function createBasemapGallery() {
var basemapGallery = new BasemapGallery({
showArcGISBasemaps : false,
bingMapsKey : "example",
basemaps : basemapsList,
map : map
});
basemapGallery.startup();
connect.connect(basemapGallery, 'onLoad', function() {
arrayUtils.forEach(basemapGallery.basemaps, function(basemap) {
registry.byId('basemapMenu').addChild(new MenuItem({
label : basemap.title,
onClick : function() {
basemapGallery.select(basemap.id);
}
}));
});
});
}
basemapGallery = new BasemapGallery({
showArcGISBasemaps: true,
map: map
});
var basemaps = [];
var chartsBMLayer = new BasemapLayer({
url: "http://egisws02.nos.noaa.gov/ArcGIS/rest/services/RNC/NOAA_RNC/ImageServer"
});
var chartBaseMap = new Basemap({
layers: [chartsBMLayer],
title: "NOAA Charts",
id: "NOAAChart"
});
basemaps.push(chartBaseMap);
basemapGallery.add(chartBaseMap);
basemapGallery.on("load", function () {
for (i = 0; i < basemapGallery.basemaps.length; i++) {
(function (x) {
registry.byId('basemapMenu').addChild(new MenuItem({
label: basemapGallery.basemaps.title,
onClick: function () {
basemapGallery.select(basemapGallery.basemaps.id);
}
}));
}(i));
}
});
require(["esri/config", "esri/map", "esri/dijit/BasemapGallery", "esri/dijit/Basemap", "esri/dijit/BasemapLayer", "esri/dijit/editing/Editor", "esri/layers/FeatureLayer", "esri/tasks/GeometryService",
"esri/toolbars/draw", "esri/toolbars/navigation", "dojo/on", "dijit/registry", "dojo/keys", "dojo/parser", "dojo/_base/array", "dojo/i18n!esri/nls/jsapi", "dijit/form/Button", "dijit/Menu", "dijit/MenuItem",
"dojo/dom", "dojo/_base/connect", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/TitlePane", "dijit/Toolbar", "dijit/DropDownMenu", "dojo/domReady!"],
function(esriConfig, Map, BasemapGallery, Basemap, BasemapLayer, Editor, FeatureLayer, GeometryService, Draw, Navigation, on, registry, keys, parser, arrayUtils, i18n, Button, Menu, MenuItem, dom, connect) {
parser.parse();
//snapping is enabled for this sample - change the tooltip to reflect this
i18n.toolbars.draw.start += "<br/>Press <b>CTRL</b> to enable snapping";
i18n.toolbars.draw.addPoint += "<br/>Press <b>CTRL</b> to enable snapping";
esriConfig.defaults.geometryService = new GeometryService("http:/.../Geometry/GeometryServer");
var map = new Map("map", {
basemap : "topo",
center : [-98, 39],
zoom : 4,
slider : false
});
// Have to combine the basemap gallery and edit 'on load' functions
map.on("layers-add-result", initEditing);
var operationsPointLayer = new FeatureLayer("http://.../test/FeatureServer/0", {
mode : FeatureLayer.MODE_ONDEMAND,
outFields : ["*"],
opacity : .50
});
map.addLayers([operationsPointLayer]);
map.infoWindow.resize(400, 300);
function initEditing(event) {
// This is a test of syntax to ONLY edit the CDB layer
var featureLayerInfos = [{
'featureLayer' : operationsPointLayer
}];
var settings = {
map : map,
createOptions : {
polygonDrawTools : [esri.dijit.editing.Editor.CREATE_TOOL_RECTANGLE]
},
// Try referencing just the CDB layer, is this what layerInfos needs?
layerInfos : featureLayerInfos
};
var params = {
settings : settings
};
var editorWidget = new Editor(params, 'editorDiv');
}
// Create custom list of basemaps for the gallery
var basemapsList = [];
var basemapAerial = new Basemap({
layers : [new BasemapLayer({
type : "BingMapsAerial"
})],
title : "Bing Aerial",
thumbnailUrl : "images/bingMapsAerial.png"
});
basemapsList.push(basemapAerial);
var basemapHybrid = new Basemap({
layers : [new BasemapLayer({
type : "BingMapsHybrid"
})],
title : "Bing Hybrid",
thumbnailUrl : "images/bingMapsHybrid.png"
});
basemapsList.push(basemapHybrid);
var basemapTopo = new Basemap({
layers : [new BasemapLayer({
url : "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"
})],
title : "Topographic",
thumbnailUrl : "images/topo.jpg"
});
basemapsList.push(basemapTopo);
var basemapUSATopo = new Basemap({
layers : [new BasemapLayer({
url : "http://services.arcgisonline.com/ArcGIS/rest/services/USA_Topo_Maps/MapServer"
})],
title : "USA Topo",
thumbnailUrl : "images/usa_topo.jpg"
});
basemapsList.push(basemapUSATopo);
var basemapGallery = new BasemapGallery({
showArcGISBasemaps : true,
//bingMapsKey : "test",
basemaps : basemapsList,
map : map
});
basemapGallery.startup();
// Add the basemap gallery in drop down menu on toolbar
basemapGallery.on("load", function() {
createBasemapGallery();
});
function createBasemapGallery() {
for ( i = 0; i < basemapGallery.basemaps.length; i++) {( function(x) {
registry.byId('basemapMenu').addChild(new MenuItem({
label : basemapGallery.basemaps.title,
onClick : function() {
basemapGallery.select(basemapGallery.basemaps.id);
}
}));
}(i));
}
}
//Navigation tools
navToolbar = new Navigation(map);
registry.byId("zoomin").on("click", function() {
navToolbar.activate(Navigation.ZOOM_IN);
});
registry.byId("zoomout").on("click", function() {
navToolbar.activate(Navigation.ZOOM_OUT);
});
registry.byId("pan").on("click", function() {
navToolbar.activate(Navigation.PAN);
});
registry.byId("deactivate").on("click", function() {
navToolbar.deactivate();
});
});
basemapGallery.on("load", function() {
createBasemapGallery();
});
if (basemapGallery.loaded) {
createBasemapGallery();
};