ArcGIS 4.x 绘图

1、 绘制点

复制代码
require([
  "esri/Graphic",
  "esri/geometry/Point",
  "esri/symbols/SimpleMarkerSymbol",
  "esri/Map",
  "esri/views/MapView"
], function(Graphic, Point, SimpleMarkerSymbol, Map, MapView) {

  var map = new Map({
    basemap: "streets-navigation-vector"
  });

  var view = new MapView({
    container: "viewDiv",
    map: map,
    center: [-118.80500, 34.02700], // 经度, 纬度
    zoom: 13
  });

  var point = new Point({
    longitude: -118.80500,
    latitude: 34.02700
  });

  var pointSymbol = new SimpleMarkerSymbol({
    color: "red",
    size: 8,
    outline: {
      color: "white",
      width: 2
    }
  });

  var pointGraphic = new Graphic({
    geometry: point,
    symbol: pointSymbol
  });

  view.graphics.add(pointGraphic);
});

2、绘制线条

复制代码
require([
  "esri/Graphic",
  "esri/geometry/Polyline",
  "esri/symbols/SimpleLineSymbol",
  "esri/Map",
  "esri/views/MapView"
], function(Graphic, Polyline, SimpleLineSymbol, Map, MapView) {

  var map = new Map({
    basemap: "streets-navigation-vector"
  });

  var view = new MapView({
    container: "viewDiv",
    map: map,
    center: [-118.80500, 34.02700],
    zoom: 13
  });

  var polyline = new Polyline({
    paths: [
      [-118.80500, 34.02700],
      [-118.80900, 34.02900],
      [-118.81500, 34.02500]
    ]
  });

  var lineSymbol = new SimpleLineSymbol({
    color: "blue",
    width: 3
  });

  var polylineGraphic = new Graphic({
    geometry: polyline,
    symbol: lineSymbol
  });

  view.graphics.add(polylineGraphic);
});

3、绘制面

复制代码
require([
  "esri/Graphic",
  "esri/geometry/Polygon",
  "esri/symbols/SimpleFillSymbol",
  "esri/Map",
  "esri/views/MapView"
], function(Graphic, Polygon, SimpleFillSymbol, Map, MapView) {

  var map = new Map({
    basemap: "streets-navigation-vector"
  });

  var view = new MapView({
    container: "viewDiv",
    map: map,
    center: [-118.80500, 34.02700],
    zoom: 13
  });

  var polygon = new Polygon({
    rings: [
      [-118.80500, 34.02700],
      [-118.80900, 34.02900],
      [-118.81500, 34.02500],
      [-118.80500, 34.02700]
    ]
  });

  var fillSymbol = new SimpleFillSymbol({
    color: [51, 51, 204, 0.5], // 半透明蓝色
    outline: {
      color: "white",
      width: 2
    }
  });

  var polygonGraphic = new Graphic({
    geometry: polygon,
    symbol: fillSymbol
  });

  view.graphics.add(polygonGraphic);
});

4、添加阴影效果

复制代码
var shadowSymbol = new SimpleMarkerSymbol({
  color: [50, 50, 50, 0.5], // 半透明灰色
  size: 12,
  outline: null // 去除边框
});

var shadowGraphic = new Graphic({
  geometry: point,
  symbol: shadowSymbol
});

view.graphics.add(shadowGraphic);

5、 样式设置:颜色、线宽、填充样式

设置点样式:

复制代码
var pointSymbol = new SimpleMarkerSymbol({
  color: [255, 0, 0], // 红色
  size: 10,
  outline: {
    color: [255, 255, 255], // 白色边框
    width: 2
  }
});

设置线条样式:

复制代码
var lineSymbol = new SimpleLineSymbol({
  color: [0, 0, 255], // 蓝色
  width: 3
});

设置面样式:

复制代码
var fillSymbol = new SimpleFillSymbol({
  color: [0, 255, 0, 0.3], // 半透明绿色
  outline: {
    color: [255, 255, 255], // 白色边框
    width: 2
  }
});

6、透明度和模拟阴影效果

复制代码
透明度设置:通过设置 color 数组的最后一个值来调整透明度,例如 [255, 0, 0, 0.5] 表示半透明的红色。

模拟阴影效果:通过增加额外的图形(例如增加一个较大的半透明灰色圆形)来模拟阴影。
相关推荐
zhifou12345612 分钟前
java 17升级安装
java·开发语言
for_ever_love__16 分钟前
python基础语法学习: 面向对象的三大特性
开发语言·python·学习
不会代码的小猴1 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json
沫璃染墨1 小时前
《Qt从零入门系列(六):信号与槽进阶——从多种连接方式到Lambda表达式》
开发语言·c++·qt·代码规范·设计规范·qt5
ZJU_统一阿萨姆2 小时前
【算子开发】环境搭建与第一个CUDA程序
开发语言·人工智能·系统架构
Evand J2 小时前
【MATLAB例程,车联网8】MPC网联车辆节能跟驰控制:速度跟踪、间距约束与能耗优化。附MATLAB完整代码的下载链接
开发语言·matlab·车联网·调度·mpc·节能·车辆控制
ttwuai2 小时前
Go 后台接入 SSO 后菜单正常但接口 403,怎么排查权限链路?
开发语言·后端·golang
Canmag 兴隆磁性3 小时前
C 系列充磁机
c语言·开发语言·学习·永磁材料·充磁·退磁
benchmark_cc3 小时前
批量获取量化数据时,如何设置合理的超时和重试机制?——QuantDash 高性能实战指南
开发语言·人工智能·python·pandas·量化·quantdash
2601_966949653 小时前
使用 Pandas 读取批量数据时如何避免内存溢出?QuantDash 量化数据工程师避坑指南
开发语言·python·pandas·tushare·akshare·quantdash