-
hitTest
(screenPoint, options)
{Promise<HitTestResult>}
返回与指定屏幕坐标相交的每个图层的要素。结果被组织为包含带有 Graphic 的对象的数组。如果命中相交要素,以下图层类型将返回所有要素: FeatureLayer , CSVLayer , GeoJSONLayer , GeoRSSLayer , GraphicsLayer , KMLLayer , MapNotesLayer , OGCFeatureLayer , StreamLayer 和 WFSLayer 。
VectorTileLayer 命中测试结果包含一个图形,其属性指示与屏幕点相交的vector tile style 内的图层的 ID 和名称。不返回有关图层中表示的实际要素的详细属性和空间信息。
发布特定更改:
- 在 4.23 版中,来自要素图层的所有命中测试要素都会在结果中返回。在以前的版本中,仅返回最重要的函数。
- 在 4.6 版中,添加了对 VectorTileLayer 的支持。
参数:
规格:类型 说明 screenPoint ScreenPoint|MouseEvent单击视图的屏幕坐标(或本机鼠标事件)。
options Object可选的 用于指定 hitTest 中包含或排除的内容的选项。自 4.16 起支持。
规格:include可选的 要包含在 hitTest 中的图层和图形列表。如果未指定 include,则将包括所有图层和图形。
exclude可选的 要从 hitTest 中排除的图层和图形列表。如果未指定排除,则不会排除任何图层或图形。
返回:
类型 说明 Promise<HitTestResult> 解析后,返回一个包含与给定屏幕坐标相交的图形(如果存在)的对象。 例子:
// Get the screen point from the view's click event view.on("click", function (event) { // Search for graphics at the clicked location. View events can be used // as screen locations as they expose an x,y coordinate that conforms // to the ScreenPoint definition. view.hitTest(event).then(function (response) { if (response.results.length) { let graphic = response.results.filter(function (result) { // check if the graphic belongs to the layer of interest return result.graphic.layer === myLayer; })[0].graphic; // do something with the result graphic console.log(graphic.attributes); } }); });
// get screenpoint from view's pointer-move event view.on("pointer-move", function(event){ // Search for graphics on layers at the hovered location // exclude view.graphics from the hitTest view.hitTest(event, {exclude: view.graphics}).then(function(response){ // if graphics are returned, do something with results if (response.results.length){ // do something } }); });
// get screenpoint from view's click event view.on("click", function(event){ // Search for all features only on included layers at the hovered location view.hitTest(event, {include: featureLayer}).then(function(response){ // if features are returned from the featureLayer, do something with results if (response.results.length){ // do something console.log(response.results.length, "features returned"); } }) });
基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/views/MapView"], (MapView) => { /* code goes here */ });
ESM:
import MapView from "@arcgis/core/views/MapView";
类:
esri/views/MapView
自从:用于 JavaScript 4.0 的 ArcGIS API
用法说明
MapView.hitTest
函数(或属性)的定义如下:
相关用法
- JavaScript ArcGIS MapView.highlightOptions用法及代码示例
- JavaScript ArcGIS MapView.heightBreakpoint用法及代码示例
- JavaScript ArcGIS MapView.constraints用法及代码示例
- JavaScript ArcGIS MapView.takeScreenshot用法及代码示例
- JavaScript ArcGIS MapView.when用法及代码示例
- JavaScript ArcGIS MapView.extent用法及代码示例
- JavaScript ArcGIS MapView.whenLayerView用法及代码示例
- JavaScript ArcGIS MapView.scale用法及代码示例
- JavaScript ArcGIS MapView.toScreen用法及代码示例
- JavaScript ArcGIS MapView.navigation用法及代码示例
- JavaScript ArcGIS MapView.animation用法及代码示例
- JavaScript ArcGIS MapView.widthBreakpoint用法及代码示例
- JavaScript ArcGIS MapView.input用法及代码示例
- JavaScript ArcGIS MapView.fatalError用法及代码示例
- JavaScript ArcGIS MapView.destroy用法及代码示例
- JavaScript ArcGIS MapView.background用法及代码示例
- JavaScript ArcGIS MapView.spatialReference用法及代码示例
- JavaScript ArcGIS MapView.breakpoints用法及代码示例
- JavaScript ArcGIS MapView.tryFatalErrorRecovery用法及代码示例
- JavaScript ArcGIS MapView.rotation用法及代码示例
- JavaScript ArcGIS MapView.center用法及代码示例
- JavaScript ArcGIS MapView.on用法及代码示例
- JavaScript ArcGIS MapView.container用法及代码示例
- JavaScript ArcGIS MapView.graphics用法及代码示例
- JavaScript ArcGIS MapView.goTo用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 MapView.hitTest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。