当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS GeoJSONLayer用法及代码示例


基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/layers/GeoJSONLayer"], (GeoJSONLayer) => { /* code goes here */ });

ESM: import GeoJSONLayer from "@arcgis/core/layers/GeoJSONLayer";

类: esri/layers/GeoJSONLayer

继承: GeoJSONLayer > Layer > Accessor

自从:用于 JavaScript 4.11 的 ArcGIS API

用法说明

概述

GeoJSONLayer 类用于基于 GeoJSON 创建图层。 GeoJSON 是一种用于编码各种地理数据结构的格式。 GeoJSON 数据必须符合 RFC 7946 specification ,其中指出坐标在 SpatialReference.WGS84 中。请参阅 FeatureLayer 的 querying your data 部分以了解有关如何查询 geojson 数据的更多信息,并参阅 data visualization 部分以了解如何更改 GeoJSONLayer 的可视化。

请参阅下表以了解GeoJSON 中支持的几何对象及其对应的几何类型:

GeoJSON 几何对象 API 几何类型
Point Point
MultiPoint Multipoint
线串/多线串 Polyline
多边形/多多边形 Polygon

创建GeoJSONLayer

GeoJSONLayer 是通过将其 url 属性设置为指向 geojson feed 或内存中 geojson 数据的 blob url 来创建的。

引用 geojson 提要 URL

要从 geojson feed 创建 GeoJSONLayer 实例,您必须将 url 属性设置为 geojson feed 的 url。

require(["esri/layers/GeoJSONLayer"], function(GeoJSONLayer){
  // points to the states layer in a service storing U.S. census data
  const geojsonlayer = new GeoJSONLayer({
    url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
    copyright: "USGS Earthquakes"
  });
  map.add(geojsonlayer);  // adds the layer to the map
});

通过 blob url 引用内存 geojson 数据

您还可以通过将 blob url 传递给图层的 url 属性,从内存中的 geojson 数据创建 GeoJSONLayer。以下代码片段展示了如何从 blob url 创建新的GeoJSONLayer。

// create a geojson layer from geojson feature collection
const geojson = {
  type: "FeatureCollection",
  features: [
    {
      type: "Feature",
      id: 1,
      geometry: {
        type: "Polygon",
        coordinates: [
          [
            [100.0, 0.0],
            [101.0, 0.0],
            [101.0, 1.0],
            [100.0, 1.0],
            [100.0, 0.0]
          ]
        ]
      },
      properties: {
        prop0: "value0",
      }
    }
  ]
};

// create a new blob from geojson featurecollection
const blob = new Blob([JSON.stringify(geojson)], {
  type: "application/json"
});

// URL reference to the blob
const url = URL.createObjectURL(blob);
// create new geojson layer using the blob url
const layer = new GeoJSONLayer({
  url
});

已知限制

  • 每个GeoJSONLayer仅接受一种几何类型。如果有多种类型的几何图形,则仅加载geometryType中指定的类型。如果未指定geometryType,则默认为第一个几何体的几何类型。
  • 每个 GeoJSONLayer 只接受一种属性模式。 fields 属性可用于指定图层所需的字段。如果未定义字段,则第一个要素使用的模式将用于推导该层的字段模式。
  • 不支持GeometryCollection
  • 不支持将对象用作GeoJSON 函数的属性值。
  • 目前不支持跨越反子午线的几何图形。

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 GeoJSONLayer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。