添加底图&切换底图——参考ArcGIS API

添加底图&切换底图

【? Code First ?】

Part 1:HTML

<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
		<title>Lux's Map</title>
		<link rel="stylesheet" href="css/css01.css" />
		<link rel="stylesheet" href="https://js.arcgis.com/4.10/esri/css/main.css">
		<link rel="stylesheet" href="css/css_menu.css" />
		<script src="https://js.arcgis.com/4.10/"></script>
		<script src="js/js01.js"></script>
	</head>

	<body>

		<!--******************************************************侧栏切换菜单*****************************************************************-->
		<ul>
			<li>
				<a class="entypo-star" href="demo01.html"></a> <span>ChangeBaseMap</span>
			</li>

			<li>
				<a class="entypo-newspaper" href="demo02.html"></a> <span>AddLayers</span>
			</li>

			<li>
				<a class="entypo-link" href="demo03.html"></a> <span>LinkMap</span>
			</li>

			<li>
				<a class="entypo-menu" href="demo04.html"></a> <span>LayerSwipe</span>
			</li>
		</ul>

		<!--******************************************************地图显示DIV*****************************************************************-->
		<div id="viewDiv01"></div>
		<div id="viewDiv02"></div>
		<div id="viewDiv03"></div>
		<div id="viewDiv04"></div>
		<div id="viewDiv05"></div>

		<!--******************************************************地图切换DIV*****************************************************************-->
		<div id="popdiv_write">
			<div id="write_output">
				<div id="basemap01" class="basemap" ><img src="img/gray.png"/></div>
				<div id="basemap02" class="basemap" ><img src="img/hybrid.jpg"/></div>
				<div id="basemap03" class="basemap" ><img src="img/national_geographic.jpg"/></div>
				<div id="basemap04" class="basemap" ><img src="img/osm.jpg"/></div>
				<div id="basemap05" class="basemap" ><img src="img/streets.png"/></div>
			</div>
		</div>

	</body>

</html>

Part 2:CSS


html, body, #viewDiv01 {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }
    
    

#popdiv_write{
	position: absolute;
	top: 10px;
	right: 10px;
	width: 140px;
	height: 93%;
	padding: 5px;
	background-size: 100%;
	background-color: #C0C0C0;
	opacity: 0.8;
	z-index: 9;
	
	border: 3px dashed #000000;
	border-radius:5px ;
}

.basemap{
	margin: 10px;
	z-index: 20;
}

Part 3:Javascript

require([
      "esri/Map",
      "esri/views/MapView"
    ], function(Map, MapView) {
//**********************************************功能1:切换地图的底图**********************************************************
      var map01 = new Map({
        basemap: "streets"
      });
      
      var view = new MapView({
        container: "viewDiv01",
        map: map01,
        center: [-118.71511,34.09042],
        zoom: 11
      });
      
      document.getElementById("basemap01").addEventListener("click",function(){
      	map01.basemap= "gray";
      });
      
      document.getElementById("basemap02").addEventListener("click",function(){
      	map01.basemap= "hybrid";
      });
      
      document.getElementById("basemap03").addEventListener("click",function(){
      	map01.basemap= "national-geographic";
      });
      
      document.getElementById("basemap04").addEventListener("click",function(){
      	map01.basemap= "osm";
      });
      
      document.getElementById("basemap05").addEventListener("click",function(){
      	map01.basemap= "streets";
      });
      
      
      
      
      
//**********************************************功能:显示地图的比例尺,鼠标等坐标点等**********************************************************
      
      //*** 添加DIV用于显示坐标等信息 ***//
      var coordsWidget = document.createElement("div");
      coordsWidget.id = "coordsWidget";
      coordsWidget.className = "esri-widget esri-component";
      coordsWidget.style.padding = "7px 15px 5px";
      view.ui.add(coordsWidget, "bottom-left");

      //***显示经纬度、比例尺大小和尺度***//
      function showCoordinates(pt) {
        var coords = "Lat/Lon " + pt.latitude.toFixed(3) + " " + pt.longitude.toFixed(3) + 
            " | Scale 1:" + Math.round(view.scale * 1) / 1 +
            " | Zoom " + view.zoom;
        coordsWidget.innerHTML = coords;
      }
      
      //*** 添加事件显示中心的坐标(在视图停止移动之后) ***//
      view.watch(["stationary"], function() {
        showCoordinates(view.center);
      });

      //*** 添加显示鼠标的坐标点***//
      view.on(["pointer-down","pointer-move"], function(evt) {
        showCoordinates(view.toMap({ x: evt.x, y: evt.y }));
      });
      
  });
    

Part 4:Menu(CSS)

@import url(http://weloveiconfonts.com/api/?family=entypo);

/* entypo */
[class*="entypo-"]:before {
  font-family: 'entypo', sans-serif;
}

@-webkit-keyframes flip {
  0%{-webkit-transform:rotateY(0deg);
  opacity:1;}
  100%{-webkit-transform:rotateY(95deg);
  opacity:0;}
}

@-moz-keyframes flip {
  0%{-webkit-transform:rotateY(0deg);
  opacity:1;}
  100%{-webkit-transform:rotateY(95deg);
  opacity:0;}
}

@-o-keyframes flip {
  0%{-webkit-transform:rotateY(0deg);
  opacity:1;}
  100%{-webkit-transform:rotateY(95deg);
  opacity:0;}
}

@keyframes flip {
  0%{-webkit-transform:rotateY(0deg);
  opacity:1;}
  100%{-webkit-transform:rotateY(95deg);
  opacity:0;}
}
body {
 background:url(forestblur.jpg) no-repeat;
  background-size:cover 100%;
}

h2 {
    color: #555;
    text-align: center;
}

ul {
  position:absolute;
  top: 45px;
	left: 15px;
  margin:50px auto;
  padding:0;
  z-index: 9;
  
  width:200px;
  height:220px;
  list-style:none;
  -webkit-perspective:1000;
  -moz-perspective:1000;
  -o-perspective:1000;
  perspective:1000;
}

li {
  margin:2px 0;
  padding:0;
}

li a {
  display:block;
  height:18px;
  width:20px;
  background:rgba(155,155,155,0.5);
  color:#fff;
  padding:8px 6px;
  text-decoration:none;
  text-align:center;
}

li span {
  width:154px;
  float:left;
  text-align:center;
  background:rgba(155,155,155,0.5);
  color:#fff;
  margin:-34px 34px;
  padding:8px 6px;
  transform-origin:0%;
  opacity:0;
  -webkit-transform:rotateY(95deg);
  -webkit-transition:.5s;
  -moz-transition:.5s;
  -o-transition:.5s;
  transition:.5s;
  -webkit-animation: flip 2s;
  -moz-animation: flip 2s;
  -o-animation: flip 2s;
  animation: flip 2s;
}

span[class='menu']{-webkit-animation:none;}
li:nth-child(2) span {
  -webkit-animation-delay:.5s;
  -moz-animation-delay:.5s;
  -o-animation-delay:.5s;
  animation-delay:.5s;}
li:nth-child(3) span {
  -webkit-animation-delay:.4s;
  -moz-animation-delay:.4s;
  -o-animation-delay:.4s;
  animation-delay:.4s;}
li:nth-child(4) span {
  -webkit-animation-delay:.3s;
  -moz-animation-delay:.3s;
  -o-animation-delay:.3s;
  animation-delay:.3s;}
li:nth-child(5) span {
  -webkit-animation-delay:.2s;
  -moz-animation-delay:.2s;
  -o-animation-delay:.2s;
  animation-delay:.2s;}
li:nth-child(6) span {
  -webkit-animation-delay:.1s;
  -moz-animation-delay:.1s;
  -o-animation-delay:.1s;
  animation-delay:.1s;}

li a:hover ~ span {
  opacity:1;
  -webkit-transform:rotateY(0deg);
  -moz-transform:rotateY(0deg);
  -o-transform:rotateY(0deg);
  transform:rotateY(0deg);
  -webkit-transition:.5s;
  -moz-transition:.5s;
  -o-transition:.5s;
  transition:.5s;
}
【? You have to know: ?】
  • 这个是功能的全部代码,我的项目界面是这样嘚:
    文件目录
    ····其中Demo01是该示例代码,对应css01;界面中有设置一个功能切换菜单Menu(对应样式为CSS_Menu);img为切换底图时界面上显示的图片引用;

  • 功能实现界面如下:
    实现界面
    代码下载地址:链接:WebGIS_Demo_X4 提取码:uy3p

  • 实例中主要思路:点击图片,响应对应click事件——切换底图样式到“gray”
    在这里插入图片描述

  • Select BaseMap 该官网上示例代码中,切换使用的是已经写好的切换的类似插件的模块,直接添加引用便可加入到界面.

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在ArcGIS API中加载高德地图作为底图,需要按以下步骤操作: 1. 获取高德地图的服务URL。可以通过高德地图开放平台提供的API或其他方法获取到高德地图的服务URL。 2. 在ArcGIS API地图对象中添加图层。首先,创建一个新的ArcGIS地图对象,并将高德地图的服务URL作为底图添加地图中。 ```javascript var map = new Map({ basemap: { baseLayers: [ new TileLayer({ portalItem: { id: { // 高德地图的服务URL // 例如:http://webrd0{subDomain}.is.autonavi.com/appmaptile?style=6&x={col}&y={row}&z={level} // "{level}" 表示缩放级别, "{col}" 表示列号, "{row}" 表示行号, "{subDomain}" 表示服务器子域 // 要根据高德地图的服务URL的具体格式进行替换 source: "<高德地图的服务URL>" } } }) ] } }); ``` 3. 创建视图对象并将地图对象附加到视图中。将地图对象设置为视图的地图属性,然后将视图附加到指定的DOM元素上。 ```javascript var view = new MapView({ container: "viewDiv", // 将视图附加到具有指定ID的DOM元素上 map: map // 设置视图的地图为之前创建的地图对象 }); ``` 通过以上步骤,就可以在ArcGIS API中成功加载高德地图作为底图了。可以根据具体需求进行其他配置和样式的设定,例如放大倍数、中心点、缩放范围等。 ### 回答2: 要加载高德地图作为ArcGIS API底图,需要按照以下步骤进行操作。 首先,打开ArcGIS API for JavaScript官方网站,并下载最新的API版本。安装完成后,将它引入到你的项目中。 接下来,你需要在你的HTML文件中创建一个容器,用于显示地图。可以使用div元素,并设置其宽度和高度。 在你的JavaScript代码中,首先创建一个地图对象。使用arcgis对象中的Map类可以实现这一功能。在创建地图对象时,需要指定地图容器的ID以及其他的可选参数,如初始缩放级别和初始中心点。 接下来,你需要创建一个底图图层对象,并将其添加地图对象中。使用arcgis对象中的TileLayer类可以加载高德地图服务作为底图。在创建底图图层对象时,需要指定该服务的URL。 最后,将地图对象添加地图容器中,并显示地图。使用arcgis对象中的MapView类可以实现这一功能。在创建MapView对象时,需要指定地图对象、地图容器对象以及其他的可选参数,如初始视图范围。 加载高德地图作为ArcGIS API底图需要使用合适的API版本,创建地图对象、底图图层对象和视图对象,并将它们按照正确的顺序进行添加和显示。通过以上步骤,你可以成功加载高德地图作为ArcGIS API底图。 ### 回答3: 要将高德地图作为ArcGIS API底图,可以按照以下步骤进行: 1. 首先,在ArcGIS API的官方文档中找到相关的代码示例或文档,这些示例和文档将指导你如何加载外部地图服务。 2. 打开ArcGIS API开发环境,创建一个新的HTML文件。 3. 在HTML文件中,引入ArcGIS APIJavaScript库文件,并对其进行初始化。 4. 在JavaScript代码中,创建一个地图对象,并指定地图的初始显示范围、放大级别等。 5. 使用ArcGIS API提供的图层对象,加载高德地图的服务URL作为底图图层。 6. 设置地图对象的底图图层为加载的高德地图图层。 7. 运行或部署该HTML文件,以查看加载的高德地图作为ArcGIS API底图的效果。 需要注意的是,使用高德地图作为ArcGIS API底图需要确保高德地图服务的URL和相关访问秘钥是有效的,并且遵循高德地图ArcGIS API的使用协议和限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值