如何在ArcGIS JS中绘制矢量图形?

使用 ArcGIS JS API 绘制矢量图形

arcgis js 画矢量图形

ArcGIS JS API 是 Esri 提供的一个强大的 JavaScript 库,用于在 Web 应用程序中创建交互式地图,本文将详细介绍如何使用 ArcGIS JS API 来绘制矢量图形,包括基本的设置、添加图形图层以及绘制点、线和多边形等几何形状。

1. 基本设置

在使用 ArcGIS JS API 之前,需要先引入相关的脚本文件,可以在 HTML 文件中通过<script> 标签引入,以下是一个简单的示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ArcGIS JS API Example</title>
    <link rel="stylesheet" href="https://js.arcgis.com/4.25/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.25/"></script>
    <style>
        html, body, #viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
</head>
<body>
    <div id="viewDiv"></div>
    <script>
        require([
            "esri/Map",
            "esri/views/MapView",
            "esri/Graphic",
            "esri/layers/GraphicsLayer",
            "esri/geometry/Point",
            "esri/geometry/Polyline",
            "esri/geometry/Polygon"
        ], function(Map, MapView, Graphic, GraphicsLayer, Point, Polyline, Polygon) {
            const map = new Map({
                basemap: "streets"
            });
            const view = new MapView({
                container: "viewDiv",
                map: map,
                center: [-118.80500, 34.02700], // Longitude, latitude
                zoom: 13
            });
            // 示例代码将在此处添加
        });
    </script>
</body>
</html>

2. 添加图形图层

图形图层(GraphicsLayer)用于在地图上绘制矢量图形,可以通过以下方式创建一个图形图层并添加到地图中:

const graphicsLayer = new GraphicsLayer();
map.add(graphicsLayer);

3. 绘制点

要在地图上绘制一个点,可以使用Point 类,以下是如何创建一个点并将其添加到图形图层的示例:

arcgis js 画矢量图形

const point = new Point({
    longitude: -118.80500,
    latitude: 34.02700,
    spatialReference: { wkid: 4326 } // WGS 84 坐标系
});
const pointSymbol = {
    type: "simple-marker", // autocasts as simple-marker-symbol
    color: [226, 119, 40], // orange, ARGB
    outline: { // autocasts as simple-line-symbol
        color: [255, 255, 255], // white, ARGB
        width: 1
    }
};
const pointGraphic = new Graphic({
    geometry: point,
    symbol: pointSymbol,
    popupTemplate: { // autocasts as popuptemplate
        title: "Sample Point",
        content: "This is a sample point."
    }
});
graphicsLayer.add(pointGraphic);

4. 绘制线

要在地图上绘制一条线,可以使用Polyline 类,以下是如何创建一条线并将其添加到图形图层的示例:

const polyline = new Polyline({
    paths: [
        [-118.80500, 34.02700], // Longitude, latitude
        [-118.80500, 34.03700] // Longitude, latitude
    ],
    spatialReference: { wkid: 4326 } // WGS 84 坐标系
});
const lineSymbol = {
    type: "simple-line", // autocasts as simple-line-symbol
    color: [226, 119, 40], // orange, ARGB
    width: "2px"
};
const lineGraphic = new Graphic({
    geometry: polyline,
    symbol: lineSymbol,
    popupTemplate: { // autocasts as popuptemplate
        title: "Sample Line",
        content: "This is a sample line."
    }
});
graphicsLayer.add(lineGraphic);

5. 绘制多边形

要在地图上绘制一个多边形,可以使用Polygon 类,以下是如何创建一个多边形并将其添加到图形图层的示例:

const polygon = new Polygon({
    rings: [
        [
            [-118.80500, 34.02700], // Longitude, latitude
            [-118.80500, 34.03700], // Longitude, latitude
            [-118.81500, 34.03700], // Longitude, latitude
            [-118.81500, 34.02700] // Longitude, latitude
        ]
    ],
    spatialReference: { wkid: 4326 } // WGS 84 坐标系
});
const polygonSymbol = {
    type: "simple-fill", // autocasts as simple-fill-symbol
    color: [226, 119, 40, 0.3], // orange, ARGB with 30% opacity
    style: "solid",
    outline: { // autocasts as simple-line-symbol
        color: [255, 255, 255], // white, ARGB
        width: 1
    }
};
const polygonGraphic = new Graphic({
    geometry: polygon,
    symbol: polygonSymbol,
    popupTemplate: { // autocasts as popuptemplate
        title: "Sample Polygon",
        content: "This is a sample polygon."
    }
});
graphicsLayer.add(polygonGraphic);

相关问题与解答栏目

问题1:如何在地图上绘制多个不同类型的图形?

答:可以通过创建多个Graphic 对象并将它们添加到同一个GraphicsLayer 中来实现。

const graphicsLayer = new GraphicsLayer();
map.add(graphicsLayer);
// 绘制点
const point = new Point({ longitude: -118.80500, latitude: 34.02700, spatialReference: { wkid: 4326 } });
const pointSymbol = { type: "simple-marker", color: [226, 119, 40], outline: { color: [255, 255, 255], width: 1 } };
const pointGraphic = new Graphic({ geometry: point, symbol: pointSymbol, popupTemplate: { title: "Sample Point", content: "This is a sample point." } });
graphicsLayer.add(pointGraphic);
// 绘制线
const polyline = new Polyline({ paths: [[-118.80500, 34.02700], [-118.80500, 34.03700]], spatialReference: { wkid: 4326 } });
const lineSymbol = { type: "simple-line", color: [226, 119, 40], width: "2px" };
const lineGraphic = new Graphic({ geometry: polyline, symbol: lineSymbol, popupTemplate: { title: "Sample Line", content: "This is a sample line." } });
graphicsLayer.add(lineGraphic);
// 绘制多边形
const polygon = new Polygon({ rings: [[[-118.80500, 34.02700], [-118.80500, 34.03700], [-118.81500, 34.03700], [-118.81500, 34.02700]]], spatialReference: { wkid: 4326 } });
const polygonSymbol = { type: "simple-fill", color: [226, 119, 40, 0.3], style: "solid", outline: { color: [255, 255, 255], width: 1 } };
const polygonGraphic = new Graphic({ geometry: polygon, symbol: polygonSymbol, popupTemplate: { title: "Sample Polygon", content: "This is a sample polygon." } });
graphicsLayer.add(polygonGraphic);

问题2:如何动态更新图形的属性?

arcgis js 画矢量图形

答:可以通过修改Graphic 对象的属性来实现动态更新,要更新点的符号颜色,可以这样做:

pointGraphic.symbol = { ...pointGraphic.symbol, color: [0, 128, 128] }; // 更新为蓝色
pointGraphic.geometry = new Point({ longitude: -118.81500, latitude: 34.02700, spatialReference: { wkid: 4326 } }); // 更新位置

小伙伴们,上文介绍了“arcgis js 画矢量图形”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/689132.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2024-11-29 13:27
Next 2024-11-29 13:29

相关推荐

  • 如何在ArcGIS JS中添加比例尺?

    使用 ArcGIS JS API 添加比例尺ArcGIS JavaScript API 是一个强大的工具,可以帮助开发者在网页中嵌入交互式地图,其中一个常见的需求是在地图上添加比例尺,本文将详细介绍如何在 ArcGIS JS API 项目中添加比例尺,步骤一:引入必要的库和模块确保你已经引入了 ArcGIS J……

    2024-11-29
    07
  • 如何利用ArcGIS JS API进行经纬度坐标的处理和展示?

    关于ArcGIS JS经纬度坐标的详细解析一、ArcGIS JS简介ArcGIS JS API是Esri公司提供的一款功能强大的JavaScript库,用于在网页上开发地理信息系统(GIS)应用,它支持多种地图操作、图层管理、空间分析以及与其他Web服务和数据的交互,通过ArcGIS JS API,用户可以轻松……

    2024-11-28
    015
  • 如何使用ArcGIS JS进行画线操作?

    ArcGIS JS API 画线指南ArcGIS JavaScript API 是 Esri 提供的一个强大的工具,用于在 Web 应用程序中创建交互式地图和地理信息系统,本文将详细介绍如何使用 ArcGIS JS API 绘制线段,包括基本设置、添加图层、绘制线条以及一些高级功能,1. 准备工作在使用 Arc……

    2024-11-29
    02
  • 如何使用ArcGIS JS API获取坐标?

    ArcGIS JS API 获取坐标的方法在使用ArcGIS JavaScript API进行开发时,经常需要获取地图上特定位置的坐标,本文将详细介绍如何使用ArcGIS JS API获取坐标,并提供相关的示例代码和表格数据,1. 引入ArcGIS JS API需要在HTML文件中引入ArcGIS JS API……

    2024-11-30
    05
  • 如何在ArcGIS JavaScript API中有效显示Layer?

    ArcGIS JS API:显示Layer一、简介ArcGIS for JavaScript API是Esri公司推出的一款强大的Web GIS开发工具,允许开发者在网页中构建交互式的地图应用,通过该API,用户可以访问和展示各种类型的地理数据层(Layer),包括矢量图层、栅格图层、动态图层等,本文将详细介绍……

    2024-11-30
    04
  • ArcGIS JavaScript API 中文版有哪些独特功能与优势?

    ArcGIS API for JavaScript 中文指南一、ArcGIS API for JavaScript 简介ArcGIS API for JavaScript(以下简称“ArcGIS JS API”)是Esri公司推出的一套基于JavaScript的应用程序接口,用于构建网络地图和地理信息系统(GI……

    2024-11-30
    06

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入