이 질문을 StackOverflow에서 시도했지만 아무런 대답도 얻지 못했습니다. 모두가 도울 수 있기를 바랍니다.
Javascript / Dojo에서 웹 맵핑 애플리케이션 작성 :
브라우저에 앱을로드하면 html 요소가로드되지만 처리가 중지됩니다. 나머지 페이지와 자바 스크립트를로드하려면 브라우저를 새로 고쳐야합니다.
나는 하루 종일 테스트와 디버깅을 수행했으며 외부 JS 파일이 잘못된 위치에 있음을 알았습니다 (나는 신인입니다). 내 파일 중 하나가 올바르게 읽히지 않거나 전혀 읽히지 않는 것을 수정하고 앱이 크게로드되는 것을 수정했습니다.
문제가있는 외부 JS 파일의 내용을 기본 코드의 기본 코드로 이동하면 포함 된 기능이 정상적으로 작동합니다 ...하지만 맵을 다시 새로 고쳐야합니다.
우연히. 아래는 내 문제를 일으키는 외부 JS 파일의 코드입니다. 함수가 외부에 있지 않을 때 예상대로 작동하기 때문에 왜 문제인지 알 수 없습니다.
도움을 주시면 감사하겠습니다.
//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);
여기 내 코드의 앞 부분이 있습니다
<!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");
편집 2 모든 코드 (css 제외)를 기본 default.html 파일에 배치하여 앱을 완전히 다시 작성했습니다. 원하는 방식으로 작동하는지 확인하기 위해 하나씩 테스트했습니다. 토글 코드를 추가하는 것은 코드를 던지고 여분의 새로 고침을 일으키는 유일한 코드입니다.
그래서 지금은 dijit.TitlePane을 사용하여 드롭 다운 요소 (베이스 맵 갤러리, 레이어, 범례)를 보유하고 있습니다. 그러나 이것으로 이미지를 만드는 모양과 느낌을 바꿀 수는 없습니다. 이것이 나의 최종 목표입니다.
아무도 대안을 제안하여 3 개의 다른 이미지를 사용할 수 있으므로 이미지를 클릭하면 드롭 다운 메뉴가 기본 맵 갤러리, 레이어 목록 및 범례를 포함하여 열립니다.