Intenté esta pregunta en StackOverflow pero no obtuve ninguna respuesta. Esperando que todos puedan ayudar.
Crear una aplicación de mapeo web en Javascript / Dojo:
Cuando cargo la aplicación en un navegador, carga los elementos html pero luego detiene el procesamiento. Tengo que actualizar el navegador para que cargue el resto de la página y el javascript.
He hecho pruebas y depuración todo el día y descubrí que tenía mis archivos JS externos en el lugar equivocado (soy un novato). Se corrigió eso y la aplicación se carga muy bien ... EXCEPTO que uno de mis archivos no se lee correctamente, o no se lee.
Cuando muevo el contenido del archivo JS externo en cuestión al código principal predeterminado, la funcionalidad que contienen funciona bien ... PERO el mapa requiere la actualización nuevamente.
Perplejo. A continuación se muestra el código en el archivo JS externo que está causando mi problema. No puedo entender por qué es un problema porque las funciones funcionan como se esperaba cuando no es externo.
Cualquier ayuda es muy apreciada.
//Toggles
function basemapToggle() {
basemaptoggler = new dojo.fx.Toggler({
node: "basemaptoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 1000,
hideDuration: 1000,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(basemapToggle);
function layerToggle() {
layertoggler = new dojo.fx.Toggler({
node: "layertoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 750,
hideDuration: 750,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(layerToggle);
function legendToggle() {
legendtoggler = new dojo.fx.Toggler({
node: "legendtoggle",
showFunc : dojo.fx.wipeIn,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(legendToggle);
Aquí está la parte delantera de mi código
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=8, IE=9" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
<title>
Zoning Classifications
</title>
<link rel="Stylesheet" href="ZoningClassifications.css" />
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dijit/themes/claro/claro.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/esri/dijit/css/Popup.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/Grid.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/claroGrid.css">
<style type="text/css">
</style>
<script src="JS/layers.js"></script>
<script src="JS/search.js"></script>
<script src="JS/basemapgallery.js"></script>
<script src="JS/identify.js"></script>
<script src="JS/toggles.js"></script>
<script type="text/javascript">
var djConfig = {
parseOnLoad: true
};
</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.0"></script>
<script type="text/javascript">
dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.map");
dojo.require("dijit.TitlePane");
dojo.require("esri.dijit.BasemapGallery");
dojo.require("esri.arcgis.utils");
dojo.require("esri.tasks.locator");
dojo.require("esri.dijit.Legend");
dojo.require("esri.dijit.Popup");
dojo.require("dijit.form.Button");
dojo.require("dojo.fx");
dojo.require("dijit.Dialog");
dojo.require("dojo.ready");
dojo.require("dijit.TooltipDialog");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("esri.tasks.find");
EDITAR 2 He reescrito completamente la aplicación colocando todo el código (excepto el css) en el archivo principal default.html. Probé pieza por pieza para asegurarme de que funcionara como quiero. Agregar el código de alternancia es el único código que lo arroja y causa la actualización adicional.
Así que por ahora estoy usando dijit.TitlePane para mantener los elementos desplegables (galería de mapas base, capas, leyenda). Sin embargo, con esto no puede cambiar la apariencia para hacerlas imágenes, que es mi objetivo final.
¿Alguien puede sugerir una alternativa para que pueda usar 3 imágenes diferentes para que cuando haga clic en la imagen y se abra el menú desplegable que contiene la galería del mapa base, la lista de capas y la leyenda?