ArcGIS API for JavaScript开发之GeoJSONLayer

本文详细介绍了使用ArcGIS API for JavaScript创建和管理GeoJSONLayer的方法,包括新建、设置popupTemplate、renderer、可见性控制、字段管理等关键属性和功能,以及查询和操作GeoJSON数据的API。
摘要由CSDN通过智能技术生成

GeoJSONLayer

require(["esri/layers/GeoJSONLayer"], function(GeoJSONLayer) {
    /* code goes here */ });

GeoJSONLayer类用于创建基于GeoJSON的层。GeoJSON是一种用于编码各种地理数据结构的格式。GeoJSON数据必须符合RFC 7946规范,该规范声明坐标在SpatialReference.WGS84中。

(1)新建一个GeoJSONLayer

const geoJSONLayer = new GeoJSONLayer({
   
   url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",//GeoJSON文件的URL
   copyright: "USGS Earthquakes",//该层的版权信息
});
map.add(geoJSONLayer);

(2)popupTemplate 弹出模板

该层的弹出模板。当在层上设置时,popupTemplate允许用户访问属性并在使用文本和/或图表选择特性时在视图的弹出窗口中显示其值。有关PopupTemplate如何与FeatureLayer交互的示例,请参见PopupTemplate示例。
当popup . defaultpopuptemplateenabled被设置为true时,如果没有定义popupTemplate,将自动使用一个默认的popup模板。

const lineTemplate = {
   
          title: "信息",
          content: `<div>
                      <p>管点编号:{管点编号}</p>
                      <p>起点X坐标:{起点X坐标}</p>
                      <p>起点Y坐标:{起点Y坐标}</p>
                      <p>终点X坐标:{终点X坐标}</p>
                      <p>终点Y坐标:{终点Y坐标}</p>
                      <p>Shape_Leng:{Shape_Leng}</p>
                      <p>起点点号:{起点点号}</p>
                      <p>终点点号:{终点点号}</p>
                      <p>起点埋深:{起点埋深}</p>
                      <p>终点埋深:{终点埋深}</p>
                      <p>起点高程:{起点高程}</p>
                      <p>终点高程:{终点高程}</p>
                      <p>材质:{材质}</p>
                      <p>埋设方式:{埋设方式}</p>
                      <p>线型:{线型}</p>
                      <p>管径:{管径}</p>
                      <p>建设日期:{建设日期}</p>
                      <p>权属单位:{权属单位}</p>
                      <p>使用状态:{使用状态}</p>
                      <p>流向:{流向}</p>
                      <p>所在道路:{所在道路}</p>
                      <p>Shape_Le_1:{Shape_Le_1}</p>
                      <p>Shape_Length:{Shape_Length}</p>
                    </div>`,
        };
const lineLayer = new GeoJSONLayer({
   
                url: './data/箱涵.json',
                popupTemplate: lineTemplate
            });

(3)renderer 渲染器

赋给图层的渲染器。渲染器定义了如何可视化层中的每个特性。根据呈现程序类型的不同,可以使用相同的符号来显示特性,也可以根据提供的属性字段或函数的值使用不同的符号来显示特性。
但是,当从客户端特性创建FeatureLayer时,必须在层的构造函数中指定此属性以及源、字段和objectIdField属性。

layer.renderer = {
   
  type: "simple",  
  symbol: {
   
    type: "simple-marker", 
    size: 6,
    color: "black",
    outline: {
   
      width: 0.5,
      color: "white"
    }
  }
}<
ArcGIS API for JavaScript 4.26中,可以使用LayerView和WebGLRenderer类来创建粒子风场效果。以下是一个简单的代码示例: ```javascript require([ "esri/layers/GeoJSONLayer", "esri/views/MapView", "esri/views/layers/LayerView", "esri/renderers/WebGLRenderer" ], function(GeoJSONLayer, MapView, LayerView, WebGLRenderer) { const geojsonLayer = new GeoJSONLayer({ url: "path/to/geojson" }); const mapView = new MapView({ container: "viewDiv", map: { basemap: "streets", layers: [geojsonLayer] }, extent: { xmin: -9177811, ymin: 4247000, xmax: -9176791, ymax: 4247784, spatialReference: 102100 } }); mapView.whenLayerView(geojsonLayer).then(function(layerView) { const renderer = new WebGLRenderer({ layerView: layerView, symbolLayers: [ { type: "point", size: 5, material: { color: "white" } }, { type: "line", size: 2, material: { color: "white" } } ], visualVariables: [ { type: "size", field: "magnitude", minDataValue: 0, maxDataValue: 10, minSize: 3, maxSize: 20 }, { type: "color", field: "direction", stops: [ { value: 0, color: "red" }, { value: 360, color: "red" } ] } ] }); layerView.renderer = renderer; }); }); ``` 此示例中,我们首先创建一个GeoJSONLayer,并将其添加到地图中。然后,我们创建一个MapView,并将其关联到地图和视图容器中。接下来,我们使用whenLayerView方法来获取GeoJSONLayerLayerView,并在其完成后调用回调函数。在回调函数中,我们创建一个WebGLRenderer,并将其与LayerView关联。我们还定义了符号层和可视化变量来控制粒子风场的呈现方式。最后,我们将渲染器分配给LayerView的renderer属性,以便呈现粒子风场效果。 请注意,在此示例中,我们假设GeoJSONLayer包含以下属性: - magnitude:表示风速大小的数字字段 - direction:表示风向的数字字段 您需要根据您的数据源更改这些属性名称或使用不同的数据源。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值