IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ArcGIS API for JavaScript 3.X 加载 ArcGIS Server 图层服务 -> 正文阅读

[JavaScript知识库]ArcGIS API for JavaScript 3.X 加载 ArcGIS Server 图层服务

一、配置 ArcGIS API for JavaScript 使用环境

这里以3.38版本为例,具体因需求而定(推荐使用最新版)

<link rel="stylesheet" href="https://js.arcgis.com/3.38/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.38/esri/css/esri.css">
<script src="https://js.arcgis.com/3.38/"></script>

二、编辑底图

这里使用Esri自带的底图(osm)

map = new Map("map", {
	basemap: "osm",
	center: [116.16, 36.37],
	zoom: 9
});

三、操作加载图层服务及移除图层服务

此处采用两种JS点击事件的操作方式,一种为JS原生点击事件写法(remove),一种为DOJO框架下的点击事件写法。为什么使用两种?因为在移除的时候如果使用DOJO的那种方式出现了一点问题,大家可以尝试改一下。url为ArcGIS Server上的图层链接。

var remove = document.getElementById("remove")
on(dom.byId("add"), "click", function(){
	var infoTemplate = new InfoTemplate("Attributes", "${*}");
	var url = "https://zdddn.gis.com:6443/arcgis/rest/services/lcs/MapServer/0";
	var featureLayerOptions = {
		id: "cities",
		mode: FeatureLayer.MODE_AUTO,
		outFields: ["*"],
		infoTemplate: infoTemplate
		};
	var citiesFeatureLayer = new FeatureLayer(url, featureLayerOptions);					
	map.addLayer(citiesFeatureLayer);	  
	remove.onclick = function () {
		map.removeLayer(citiesFeatureLayer);
	}
})

四、完整代码

<!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> ArcGIS API for JavaScript 加载地图服务</title>
	<link rel="stylesheet" href="https://js.arcgis.com/3.38/dijit/themes/claro/claro.css">
    <link rel="stylesheet" href="https://js.arcgis.com/3.38/esri/css/esri.css">
    <style>
     	html, body, #map {
       	 	height: 100%;
        	margin: 0;
        	padding: 0;
      	}
		#leftPane{
			color:#000;
			width:250px;
			padding-bottom:15px;
		}
		.details{
			font-size:14px;
			font-weight:600;
			padding-bottom:20px;
		}
		button{
			margin:2px;
			cursor:pointer;
		}
    </style>
    <script src="https://js.arcgis.com/3.38/"></script>
    <script>
      var map, tb;
      require([
				"dojo/dom",
				"dojo/_base/array",
				"dojo/parser",
				"dojo/query",
				"dojo/on",
				"esri/map",
				"esri/layers/FeatureLayer",
				"esri/InfoTemplate",
				"dijit/layout/BorderContainer",
				"dijit/layout/ContentPane",
				"dijit/form/Button",
				"dojo/domReady!"
				], function(
				dom,
				array, 
				parser, 
				query,
				on,
				Map, 
				FeatureLayer, 
				InfoTemplate,
				) {	
				
				map = new Map("map", {
				  basemap: "osm",
				  center: [116.16, 36.37],
				  zoom: 9
				});
				
				var remove = document.getElementById("remove")
				on(dom.byId("add"), "click", function(){
					var infoTemplate = new InfoTemplate("Attributes", "${*}");
					var url ="https://zdddn.gis.com:6443/arcgis/rest/services/lcs/MapServer/0";
					var featureLayerOptions = {
					  id: "cities",
					  mode: FeatureLayer.MODE_AUTO,
					  outFields: ["*"],
					  infoTemplate: infoTemplate
					};
					var citiesFeatureLayer = new FeatureLayer(url, featureLayerOptions);					
					map.addLayer(citiesFeatureLayer);	  
					remove.onclick = function () {
						map.removeLayer(citiesFeatureLayer);
					}
				})
				parser.parse();
			});
    </script>
  </head>

  <body class="claro">	
		<div data-dojo-type="dijit/layout/BorderContainer" 
		     data-dojo-props="gutters:'false', design:'sidebar'" 
		     style="width:100%;height:100%;">
		
		  <div id="map" 
		       data-dojo-type="dijit/layout/ContentPane" 
		       data-dojo-props="region:'center'">
		  </div>
		
		  <div id="leftPane" 
		       data-dojo-type="dijit/layout/ContentPane" 
		       data-dojo-props="region:'left'"
			   center>
				<button id="add" type="button">加载地图服务服务</button><br/>
				<button id="remove" type="button">移除地图服务服务</button>
				<br/><hr />	
		   </div>
		</div>
  </body>
</html>

注:博客中有破解版的ArcGIS Server 10.3版本的安装包及安装教程

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:44:50  更:2021-10-27 12:45:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:36:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码