如何在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-seo的头像K-seoSEO优化员
Previous 2024-11-29 13:27
Next 2024-11-29 13:29

相关推荐

  • 如何使用ArcGIS JS为地图上的商家添加标注?

    ArcGIS JS API 标注商家指南ArcGIS JS API 是一个强大的工具,用于在网页上创建交互式地图,通过这个API,开发者可以在地图上添加各种元素,包括点、线、面、图像和文本等,本文将详细介绍如何使用ArcGIS JS API在地图上标注商家信息,1. 准备工作在使用ArcGIS JS API之前……

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

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

    2024-11-29
    02
  • 如何在ArcGIS JS中清除所有图层?

    ArcGIS JS API:清除所有图层的详细指南ArcGIS JavaScript API 是一个功能强大的工具,用于在网页上创建交互式地图,在使用该API开发应用时,有时需要清除地图上的所有图层,以便重新加载或展示新的数据,本文将详细介绍如何在使用ArcGIS JS API时清除所有图层,1. 基本概念在A……

    2024-11-28
    02
  • 如何在ArcGIS JS中实现点击事件?

    ArcGIS JS API 中的点击事件处理ArcGIS JavaScript API 是 Esri 推出的用于开发 Web 地理信息系统应用的 JavaScript 库,它允许开发者通过 JavaScript 在网页中嵌入交互式地图,并实现各种地理空间数据处理和展示功能,本文将详细介绍如何使用 ArcGIS……

    2024-11-29
    03
  • 如何在ArcGIS JS中实现图片叠加功能?

    ArcGIS JS 叠加图片ArcGIS JavaScript API 是一个强大的工具集,用于在 Web 应用程序中构建动态和交互式地图,本文将介绍如何使用 ArcGIS JS API 叠加图片到地图上,1. 环境准备在使用 ArcGIS JS API 之前,你需要确保以下事项:- 已安装 Node.js 和……

    2024-11-27
    03
  • 如何利用ArcGIS JS构建高效的图层树结构?

    arcgis js 图层树ArcGIS API for JavaScript提供了丰富的功能来创建和管理地图应用,其中图层树是一个非常重要的部分,通过使用图层树,用户可以方便地管理和控制图层的可见性和交互性,本文将详细介绍如何使用ArcGIS JS API和jQuery EasyUI实现树形图层控制功能,总览A……

    2024-11-27
    03

发表回复

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

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