概述
本节您将学到: 怎么样创建一个二维地图和三维地图
您可以通过Map类和View类创建一个简单的二维或三维地图应用。其中Map
是一个包含您要展示的所有图层layers(包含地图basemap)的容器。您可以选择托管在ArcGIS Online一系列的矢量或栅格底图,也可以选择您自己定义的底图your own styled basemap。View
类负责绘制在Map
包含的所有的图层。您可以通过MapView
来渲染二维视图(View
)或者通过SceneView
渲染三维视图(View
)。您可以通过设置View
的center
、zoom
属性来定位二维地图,也通过设置camera
来定位三维地图。更多的介绍可以查看官方文档。
通过本节,您可以创建一个地图初始中心为加州圣塔莫尼卡山脉、地图为地形图的二维和三维地图。
展示效果请点击: 二维效果、三维效果
撸代码步骤
创建一个HTML页面
- 将如下HTML代码,加入新建的HTMl界面中。(可以使用在线编辑器)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<title>ArcGIS JavaScript Tutorials: Create a JavaScript starter app</title>
<style>
html, body, #viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
添加CSS和API的引用
- 在
<head>
标签中加入以下引用
<link rel="stylesheet" href="https://js.arcgis.com/4.11/esri/themes/light/main.css">
<script src="https://js.arcgis.com/4.11/"></script>
创建二维地图或三维地图
- 确定要创建二维地图还是三维地图。
- 在
<head>
标签中加入一个<script>
标签,并且使用AMD模式require
方式引入Map
和MapView
或SceneView
模块。创建一个Map
对象,设置其basemap
属性为topo-vector
。如果您创建是三维地图,还需要设置其ground
属性为world-elevation
,用来显示高程。最后,按照如下方式创建二三维视图:
二维地图:创建
MapView
对象设置container
属性为viewDiv
、设置center
为-118.71511,34.09042
、设置zoom
为11
。
三维地图:创建
SceneView
对象设置container
属性为viewDiv
,通过一个camera
对象来设置SceneView
的视图位置。设置camera
对象的x、y、z坐标为-118.71511, 34.09042, 2000
、tilt
属性为65
。有关camera
对象属性的设置可以查看文档。
二维地图全部代码:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<title>ArcGIS JavaScript Tutorials: Create a Starter App</title>
<style>
html, body, #viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link rel="stylesheet" href="https://js.arcgis.com/4.11/esri/css/main.css">
<script src="https://js.arcgis.com/4.11/"></script>
<script>
require([
"esri/Map",
"esri/views/MapView",
], function(Map, MapView) {
var map = new Map({
basemap: "topo-vector"
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [-118.80543,34.02700],
zoom: 13
});
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
三维地图全部代码:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<title>ArcGIS JavaScript Tutorials: Create a Starter App (3D)</title>
<style>
html, body, #viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link rel="stylesheet" href="https://js.arcgis.com/4.11/esri/css/main.css">
<script src="https://js.arcgis.com/4.11/"></script>
<script>
require([
"esri/Map",
"esri/views/SceneView"
], function(Map, SceneView) {
var map = new Map({
basemap: "topo-vector",
ground: "world-elevation"
});
var view = new SceneView({
container: "viewDiv",
map: map,
camera: {
position: {
x: -118.808,
y: 33.961,
z: 2000 // meters
},
tilt: 75
}
});
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
- 愉快的撸完以上代码,在浏览器中查看就文章开始展示效果链接的样子啦。
再撸点(官方为:挑战)
探索底图
ArcGIS Online上面托管了品类繁多的底图看供您的应用选择。许多底图在 ArcGIS JS API 中可以通过一个简单字符串进行引用。试着将basemap
属性设置为light-gray-vector
、 dark-gray-vector
、 satellite
、 streets-relief-vector
或 streets-navigation-vector
。
栗子:
var map = new Map({
basemap: "streets-navigation-vector"
});
想学习如何创建和使用自定义底图,可以看以下这这篇文章(暂时没翻译)。