GeoJSONLayerView

类: geoscene/views/layers/GeoJSONLayerView
继承于:GeoJSONLayerView LayerView Accessor
起始版本:GeoScene API for JavaScript 4.11

表示 GeoJSONLayer 添加到 MapViewSceneView 中的 Map 后的 LayerView。GeoJSONLayerView 负责将 GeoJSONLayer's 的要素渲染为 View 中的图形

另请参阅:

属性概览

可以设置、检索或收听任何属性。请参阅使用属性主题。
显示继承的属性 隐藏继承的属性
名称 类型 描述
String[]更多信息

为每个要素提取的属性字段列表,包括图层 renderinglabelingelevation info 所需的字段,以及在 GeoJSONLayer.outFields 上定义的其他字段。

更多信息GeoJSONLayerView
String更多信息

类的名称。

更多信息Accessor
FeatureEffect更多信息

应用于 layerView 的效果。

更多信息GeoJSONLayerView
FeatureEffect更多信息

featureEffect 可用于吸引感兴趣的注意力特征。

更多信息GeoJSONLayerView
FeatureFilter更多信息

Attribute、geometrygeometrytime extent 过滤。

更多信息GeoJSONLayerView
Layer更多信息

正在查看的图层。

更多信息LayerView
Number更多信息

一次可以显示的最大要素数。

更多信息GeoJSONLayerView
Boolean更多信息

表示是否已超过最大特征数。

更多信息GeoJSONLayerView
Boolean更多信息

指示图层视图是否支持 MapViewspatialReference

更多信息LayerView
Boolean更多信息

如果图层被暂停,则值为 true(即,当范围发生变化时,图层不会重绘或更新自身)。

更多信息LayerView
Boolean更多信息

图层更新时值为 true;例如,如果它正在获取数据的过程中。

更多信息LayerView
Boolean更多信息

true 时,图层在视图中可见。

更多信息LayerView

属性详情

availableFields String[]readonly
起始版本:GeoScene API for JavaScript 4.15

为每个要素提取的属性字段列表,包括图层 renderinglabelingelevation info 所需的字段,以及在 GeoJSONLayer.outFields 上定义的其他字段。当 layerView 完成 updating 时,availableFields 属性会被填充。经度在客户端过滤或查询要素时使用 availableFields

另请参阅:
示例:
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(value){
    // availableFields will become available
    // once the layerView finishes updating
    if (!value) {
       layerView.queryFeatures({
         outFields: layerView.availableFields,
         where: "magnitude > 6"
       })
       .then(function(results) {
         console.log(results.features.length, " features returned");
       })
       .catch(function(error) {
         console.log("query failed: ", error);
       });
     }
  });
});
declaredClass Stringreadonly inherited

类的名称。声明的类名格式为 geoscene.folder.className

已弃用从 4.22 版开始。请改用 FeatureEffect

应用于 layerView 的效果。效果允许通过 filter 选择要素,并且将 includedEffectexcludedEffect 应用于分别通过或未通过过滤器要求的那些要素。

另请参阅:
示例:
// set effect on excluded features
// make them gray and transparent
layerView.effect = {
  filter: { // autocasts to FeatureFilter
    geometry: filterGeometry,
    spatialRelationship: geometryRel,
    distance: 3,
    units: "miles"
  },
  excludedEffect: "grayscale(100%) opacity(30%)"
};
featureEffect FeatureEffectautocast
起始版本:GeoScene API for JavaScript 4.22

featureEffect 可用于吸引感兴趣的注意力特征。它允许通过 filter 选择要素,并将 includedEffectexcludedEffect 应用于分别通过或未通过过滤器要求的那些要素。

如果在 layer 上设置了 featureEffect,除非开发者在 layerView 上覆盖它,否则它会被 layerView.featureEffect 继承。如果设置了这两个属性,则 layerView.featureEffect 将优先于 layer.featureEffect

已知限制

另请参阅:
示例:
// gray out features that fall outside of the 3 mile buffer of the mouse's location
// by setting feature effect on excluded features
layerView.featureEffect = new FeatureEffect({
  filter: new FeatureFilter({
    geometry: filterGeometry,
    spatialRelationship: "intersects",
    distance: 3,
    units: "miles"
  }),
  excludedEffect: "grayscale(100%) opacity(30%)"
});
// Apply a drop-shadow feature effect to the features that intersect the borough boundaries,
// while applying blur and brightness effects to the features that are excluded from filter criteria.
// The resulting map will make it easier to spot if the residents are more likely to experience deprivation
// if they live on a borough boundary.
const featureFilter = new FeatureFilter({
  where: "BoroughEdge='true'"
});
layerView.featureEffect = new FeatureEffect({
  filter: featureFilter,
  includedEffect: "drop-shadow(3px, 3px, 3px, black)",
  excludedEffect: "blur(1px) brightness(65%)"
});

Attribute、geometrygeometrytime extent 过滤。只有满足过滤器的要素才会显示在视图上。

另请参阅:
示例:
// display earthquakes that have
// magnitude value of 3 or higher
layerView.filter = new FeatureFilter({
  where: "mag >= 3",
});
layer Layerreadonly inherited

正在查看的图层。

maximumNumberOfFeatures Number

一次可以显示的最大要素数。此设置当前仅适用于 SceneView。默认情况下,根据符号系统、几何复杂性、内存消耗和显示质量配置文件自动估计最大要素数。

将此设置更改为更高的值可能会导致性能显着下降和内存使用量增加。

已知限制

maximumNumberOfFeatures 仅在 3D SceneView 中受支持。

maximumNumberOfFeaturesExceeded Boolean

表示是否已超过最大特征数。当此值为 true 时,并非所有功能都可以显示。此设置当前仅适用于 SceneView。

已知限制

maximumNumberOfFeaturesExceeded 仅在 3D SceneView 中受支持。

spatialReferenceSupported Booleanreadonly inherited
起始版本:GeoScene API for JavaScript 4.23

指示图层视图是否支持 MapViewspatialReference。当 false 层视图将暂停

另请参阅:
suspended Booleanreadonly inherited

如果图层被暂停,则值为 true(即,当范围发生变化时,图层不会重绘或更新自身)。

另请参阅:
updating Booleanreadonly inherited

图层更新时值为 true;例如,如果它正在获取数据的过程中。

默认值:false

true 时,图层在视图中可见。此属性的值是从 layer.visible 继承的,除非开发人员覆盖它。如果设置了这两个属性,layerView.visible 将优先于 layer.visible

默认值:true

方法概览

显示继承的方法 隐藏继承的方法
名称 返回类型 描述
Query更多信息

创建一个查询参数对象,该对象可用于在显示要素时获取要素。

更多信息GeoJSONLayerView
Handle更多信息

突出显示给定的要素。

更多信息GeoJSONLayerView
Boolean更多信息

isFulfilled() 可用于验证创建类的实例是否已完成(已解决或已拒绝)。

更多信息LayerView
Boolean更多信息

isRejected() 可用于验证创建类的实例是否被拒绝。

更多信息LayerView
Boolean更多信息

isResolved() 可用于验证创建类的实例是否已解决。

更多信息LayerView
Promise<Object>更多信息

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素 Extent

更多信息GeoJSONLayerView
Promise<Number>更多信息

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。

更多信息GeoJSONLayerView
Promise<FeatureSet>更多信息

对 layerView 中可用于绘制的要素执行 Query 并返回 FeatureSet

更多信息GeoJSONLayerView
Promise<Number[]>更多信息

对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。

更多信息GeoJSONLayerView
Promise更多信息

when() 一旦创建了类的实例,就可以利用它。

更多信息LayerView

方法详情

createQuery(){Query}
起始版本:GeoScene API for JavaScript 4.12

创建一个查询参数对象,该对象可用于在显示要素时获取要素。它将查询参数的 outFields 属性设置为 ["*"] 并将 returnGeometry 设置为 true。输出空间参考 outSpatialReference 设置为视图的空间参考。当前应用于 layerview 的 filter 的参数也包含在返回的查询对象中。结果将包括所有字段的几何要素和值。

返回:
类型 说明
Query 查询对象
示例:
const query = layerView.createQuery();
query.where = "magnitude > 4";
layerView.queryFeatures(query).then(function(results) {
  console.log(results);
})
.catch(function() {
  console.log(error);
});
highlight(target){Handle}

突出显示给定的要素。

参数:
optional

要突出显示的要素。传递图形或图形数组时,每个要素都必须具有有效的 objectID。您也可以将一个或多个 objectID 作为单个数字或数组传递。

返回:
类型 说明
Handle 返回一个带有 remove() 方法的高亮处理程序,可以调用该方法来删除高亮显示。
另请参阅:
示例:
// highlight features based on a query result
let highlight;
view.whenLayerView(treesLayer).then(function(layerView){
 let query = treesLayer.createQuery();
 query.where = "type = 'Quercus'";
 treesLayer.queryFeatures(query).then(function(result){
   if (highlight) {
     highlight.remove();
   }
   highlight = layerView.highlight(result.features);
 })
});
// highlight feature on pointer-move
view.on("pointer-move", function(event){
  view.hitTest(event).then(function(response){
    if (response.results.length) {
      let graphic = response.results.filter(function (result) {
        return result.graphic.layer === treesLayer;
      })[0].graphic;

     view.whenLayerView(graphic.layer).then(function(layerView){
       layerView.highlight(graphic);
     });
    }
  });
});
isFulfilled(){Boolean}inherited

isFulfilled() 可用于验证创建类的实例是否已完成(已解决或已拒绝)。如果满足,则返回 true

返回:
类型 说明
Boolean 指示创建类的实例是否已完成(已解决或已拒绝)。
isRejected(){Boolean}inherited

isRejected() 可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回 true

返回:
类型 说明
Boolean 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}inherited

isResolved() 可用于验证创建类的实例是否已解决。如果已解决,将返回 true

返回:
类型 说明
Boolean 指示创建类的实例是否已解决。
queryExtent(query, options){Promise<Object>}

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素 Extent

已知限制

  • 空间查询具有与投影引擎文档中列出的相同的限制。
  • 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – Malaysia
    • Gusterberg (Ferro) (8042) – Austria/Czech Republic
    • ISN2016 (8086) - Iceland
    • SVY21 (4757) - Singapore
参数:
optional
来自 Object

指定查询的属性和空间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回:
类型 说明
Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。有关详细信息,请参阅下面的对象规格表。
属性 类型 说明
count Number 满足输入查询的特征数。
extent Extent 满足查询的要素的范围。
示例:
let layer = new GeoJSONLayer({
  url: geoJSONUrl  // URL to a geoJSON file
});

view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layerView to finish updating
      layerView.queryExtent().then(function(results){
        view.goTo(results.extent);  // go to the extent of all the graphics in the layerView
      });
    }
  });
});
// Expand the extent so that a feature (i.e. point feature)
// won't be off screen after the end of goTo animation.
layerView.queryExtent()
 .then(function(result) {
   const zoomScale = 16000;
   const extent = result.extent;

   extent.expand((zoomScale / view.scale) * view.resolution);
   view.goTo(extent);
});
queryFeatureCount(query, options){Promise<Number>}

对 layerView 中可用于绘制的要素执行 Query,并返回满足查询的要素数。如果未提供查询参数,则返回可用于绘制的所有要素的计数。

已知限制

  • 空间查询具有与投影引擎文档中列出的相同的限制。
  • 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – Malaysia
    • Gusterberg (Ferro) (8042) – Austria/Czech Republic
    • ISN2016 (8086) - Iceland
    • SVY21 (4757) - Singapore
参数:
optional
来自 Object

指定查询的属性和空间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回:
类型 说明
Promise<Number> 解析后,返回满足查询的要素数。
示例:
view.on("click", function(event){

  let query = new Query();
  query.geometry = event.mapPoint;  // obtained from a view click event
  query.spatialRelationship = "intersects";

  view.whenLayerView(layer).then(function(layerView){
    watchUtils.whenNotOnce(layerView, "updating")
    .then(function(){
      return layerView.queryFeatureCount(query);
    })
    .then(function(count){
      console.log(count);  // prints the number of the client-side graphics that satisfy the query
    });
  });
});
view.whenLayerView(layer).then(function(layerView){
  return layerView.queryFeatureCount()
}).then(function(count){
  console.log(count);  // prints the total number of client-side graphics to the console
});
queryFeatures(query, options){Promise<FeatureSet>}

对 layerView 中可用于绘制的要素执行 Query 并返回 FeatureSet。如果未提供查询参数,则返回所有可用于绘图的要素。

已知限制

  • 在针对 layerView 执行的属性查询中使用的属性值区分大小写。
  • 空间查询具有与投影引擎文档中列出的相同的限制。
  • 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – Malaysia
    • Gusterberg (Ferro) (8042) – Austria/Czech Republic
    • ISN2016 (8086) - Iceland
    • SVY21 (4757) - Singapore
参数:
optional
来自 Object

指定查询的属性和空间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的 geometry 参数设置为视图的范围。

options Object
optional

具有以下属性的对象。

规格:
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回:
类型 说明
Promise<FeatureSet> 解析后,将返回包含图形特征数组的 FeatureSet
另请参阅:
示例:
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layerView to finish updating
      layerView.queryFeatures(query).then(function(results){
        console.log(results.features);  // prints the array of client-side graphics to the console
      });
    }
  });
});
// returns all the graphics from the layerView
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layerView to finish updating
      layerView.queryFeatures().then(function(results){
        console.log(results.features);  // prints all the client-side graphics to the console
      });
    }
  });
});
layerView.queryFeatures({
  geometry: mapPoint,
  // 6 pixels around a point at the view resolution to query around a finger.
  distance: view.resolution * 6,
});
queryObjectIds(query, options){Promise<Number[]>}

对 layerView 中可用于绘制的要素执行 Query,并返回满足输入查询的要素的 ObjectID 数组。如果未提供查询参数,则返回所有可绘制要素的 ObjectID。

已知限制

  • 空间查询具有与投影引擎文档中列出的相同的限制。
  • 如果 layerView 具有以下任何 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) – Malaysia
    • Gusterberg (Ferro) (8042) – Austria/Czech Republic
    • ISN2016 (8086) - Iceland
    • SVY21 (4757) - Singapore
参数:
可选
来自 Object

指定查询的属性和空间过滤器。当没有参数传递给此方法时,将返回客户端中的所有功能。要仅返回视图中可见的要素,请将查询对象中的 geometry 参数设置为视图的范围。

options Object
可选

具有以下属性的对象。

规格:
可选

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回:
类型 说明
Promise<Number[]> 解析后,返回一个数字数组,表示满足查询的要素的 ObjectID。
示例:
view.on("click", function(event){

  let query = new Query();
  query.geometry = event.mapPoint;  // obtained from a view click event
  query.spatialRelationship = "intersects";

  view.whenLayerView(layer).then(function(layerView){
    watchUtils.whenNotOnce(layerView, "updating")
    .then(function(){
      return layerView.queryObjectIds(query);
    })
    .then(function(ids){
      console.log(ids);  // prints the ids of the client-side graphics to the console
    });
  });
});
// returns all the Ids from the graphics in the layerView
view.whenLayerView(layer).then(function(layerView){
  return layerView.queryObjectIds()
}).then(function(ids){
  console.log(ids);  // prints the ids of all the client-side graphics to the console
});
when(callback, errback){Promise}inherited

when() 一旦创建了类的实例,就可以利用它。这个方法有两个输入参数:一个 callback 函数和一个 errback 函数。callback 在类的实例加载时执行。如果类的实例无法加载,则执行 errback

参数:
callback Function
optional

当 promise 解决时调用的函数。

errback Function
optional

当 promise 失败时执行的函数。

返回:
类型 说明
Promise 返回 callback 结果的新承诺,可用于链接其他函数。
示例:
// Although this example uses MapView, any class instance that is a promise may use when() in the same way
let view = new MapView();
view.when(function(){
  // This function will execute once the promise is resolved
}, function(error){
  // This function will execute if the promise is rejected due to an error
});

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.