ArcGIS API 4.x for Js 点、线、面的绘制

需求

添加自定义的点、线、面图层

效果
在这里插入图片描述

需添加以下API

“esri/layers/GraphicsLayer”,
“esri/Graphic”,
“esri/geometry/Polygon”,
“esri/geometry/Polyline”,
“esri/geometry/Point”

完整代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>创建点、线、面</title>
    <link rel="stylesheet" href="http://139.9.43.111:8084/arcgis_js_api/library/4.13/esri/css/main.css"/>
		<style>
			html,
			body,
			#viewDiv {
				padding: 0;
				margin: 0;
				height: 100%;
				width: 100%;
			}
		</style>
		<script src="js/jquery-1.11.3.min.js"></script>
		<script src="http://139.9.43.111:8084/arcgis_js_api/library/4.13/dojo/dojo.js"></script>
	</head>
	<body>
		<div id="viewDiv"></div>
		<script>
		require([
			"esri/Map",
			"esri/views/MapView",
			"esri/layers/GraphicsLayer",
			"esri/Graphic",
			"esri/geometry/Polygon",
			"esri/geometry/Polyline",
			"esri/geometry/Point"
		], function (Map,MapView,GraphicsLayer,Graphic,Polygon,Polyline,Point) {	 
			//添加地图
			var map = new Map({
				basemap: 'satellite',
			});
					 
			var view = new MapView({
				container: "viewDiv",
				map: map,
				center: [107.246152,34.414465],
				zoom: 7
			});	 
			 
			//1.创建GraphicsLayer
			var gLayer = new GraphicsLayer({
				title: 'test'
			});
			
			//2.创建graphic
			//2.1创建点
			 var point = {
				 type:"point",
				 longitude: 105.45598133044301,
				 latitude: 34.03155034545997,
			 }
			var pgraphic = new Graphic({
				 geometry: point,
				 symbol: {
					type: "simple-marker",
					color: "white",
					width: 2,
				}
			});
			
			//2.2创建线
			var line={
					type:"polyline",
					paths: [
						[104.60780246691783,34.73210435958741],
						[108.39971645312288,34.59846850081309]
					],
					spatialReference: view.spatialReference
			};
			var lgraphic = new Graphic({
					geometry: line,
					symbol: {
							type: "simple-line",
							color: [4, 90, 141],
							width: 4,
							cap: "round",
							join: "round"
					}
			});

			//2.3创建面
			var	polygon = {
					type: "polygon",
					hasZ: false,
					hasM: false,
					rings: [
						[101.55077083544893,35.15796474608579],
						[103.72692211108313,35.1334357997853],
						[103.67190463976965,33.382052797803226],
						[101.43202407794163,33.51597302048444]
					],
					spatialReference: view.spatialReference
			};
			var ggraphic = new Graphic({
					geometry: polygon,
					symbol: {
							type: "simple-fill",
							color: "pink",
							style: "solid",
							outline: {
									color: "black",
									width: 1
							}	
					}	
			});

			//3.将画好的点、线、面添加到GraphicsLayer中	
			 gLayer.graphics.add(pgraphic);
			 gLayer.graphics.add(lgraphic);
			 gLayer.graphics.add(ggraphic);
			 
			//4.将GraphicsLayer添加到地图上
			 map.add(gLayer);
		
	 })	 
	 </script>
	</body>
</html>

总结

  • 创建GraphicsLayer 存放创建的图层
  • 点线面的本质都是创建Graphic,通过type控制图层类型,symbol控制图层样式
  • 点传入一组经纬度、线传入paths、面传入rings
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值