安装ArcGIS API for JavaScript Library(for Windows、tomacat7)
下载 arcgis_js_v40_api.zip
复制\arcgis_js_api\library 及其所有内容至web服务器,这里用的是tomcat。所以将文件复制到tomcat_home\webapps\arcgis_js_api\library目录。
安装Build
1.在文本编辑器中打开tomcat_home\arcgis_js_api\library\4.0\4.0\init.js,查找[HOSTNAME_AND_PATH_TO_JSAPI] 替换为:ServerIP:Port/arcgis_js_api/library/4.0/4.0/
2.在文本编辑器中打开tomcat_home\arcgis_js_api\library\4.0\4.0\dojo\dojo.js,查找[HOSTNAME_AND_PATH_TO_JSAPI] 替换为:ServerIP:Port/arcgis_js_api/library/4.0/4.0/
测试安装
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
<title>Test Map</title>
<link rel="stylesheet" href="http://ServerIP:port/arcgis_js_api/library/4.0/4.0/dijit/themes/claro/claro.css" />
<link rel="stylesheet" href="http://ServerIP:port/arcgis_js_api/library/4.0/4.0/esri/css/main.css" />
<style>
html, body, #ui-map-view {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
</style>
<script src="http://YourServerIP:port/arcgis_js_api/library/4.0/4.0/init.js"></script>
<script>
var myMap, view;
require([
"esri/Basemap",
"esri/layers/TileLayer",
"esri/Map",
"esri/views/MapView",
"dojo/domReady!"
], function (Basemap, TileLayer, Map, MapView){
var layer = new TileLayer({
url: "http://ServerIP:port/arcgis/rest/services/Folder/Custom_Base_Map/MapServer"
});
var customBasemap = new Basemap({
baseLayers: [layer],
title: "Custom Basemap",
id: "myBasemap"
});
myMap = new Map({
basemap: customBasemap
});
view = new MapView({
center: [-111.87, 40.57], // long, lat
container: "ui-map-view",
map: myMap,
zoom: 6
});
});
</script>
</head>
<body class="claro">
<div id="ui-map-view"></div>
</body>
</html>
常见问题
1、XMLHttpRequest 跨域错误的解决方法
在程序里添加:
require([
"esri/config",
"dojo/domReady!"], function esriConfig){
esriConfig.request.corsDetection= false;
});
屏蔽"XMLHttpRequestcannot load http://server:port/ArcGIS/rest/info?f=json. Origin http:// server:portis not allowed by Access-Control-Allow-Origin."错误
2、require中的顺序要注意
[
"esri/Basemap",
"esri/layers/TileLayer",
"esri/layers/MapImageLayer",
"esri/layers/FeatureLayer",
"esri/Map",
"esri/views/MapView",
"esri/config",
"esri/tasks/QueryTask",
"esri/tasks/support/Query",
"dojo/_base/array",
"esri/layers/GraphicsLayer",
"esri/symbols/PictureMarkerSymbol",
"dojo/domReady!"
]
将程序需要添加的引用放在dojo/domReady!之前,dojo/domReady!放在最后,否则会出现propertyis undefined的错误。