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


JavaScript ArcGIS SceneView.hitTest用法及代码示例


基本信息

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

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

ESM: import SceneView from "@arcgis/core/views/SceneView";

类: esri/views/SceneView

继承: SceneView > View > Accessor

自从:用于 JavaScript 4.0 的 ArcGIS API

用法说明

SceneView.hitTest函数(或属性)的定义如下:

hitTest (screenPoint, options) {Promise<HitTestResult>}


返回与指定屏幕坐标相交的图形。如果命中相交要素,以下图层类型将返回结果:GraphicsLayer , FeatureLayer , SceneLayer , BuildingSceneLayer , PointCloudLayer , CSVLayer , StreamLayer , GeoJSONLayer , OGCFeatureLayer 和 SceneView.graphics。

如果未指定任何选项,则不会返回位于地表后面的图形,除非地表是半透明的。否则,使用包含和排除选项中的map.ground 确定地面是否阻止其下方的命中测试图形。

如果图形具有 non-draped IconSymbol3DLayer 符号系统,则从 hitTest 将仅返回第一个图形。

从 4.11 版开始,如果标签与指定的屏幕坐标相交,则 hitTest 的结果将包含与该标签关联的图形。

参数:

规格:
类型说明
screenPoint ScreenPoint|MouseEvent

单击视图的屏幕坐标(或本机鼠标事件)。

options Object
可选的

交叉口测试选项。默认情况下,如果不透明度小于 1,则会排除 map.ground

规格:
可选的

包含用于相交测试的图层和图形列表。如果未指定 include,则将包括所有图层和图形。

可选的

包含用于相交测试的图层和图形列表。如果未指定排除,则不会排除任何图层或图形。

返回:

类型 说明
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) {
    let result = response.results[0];

    if (result) {
      let lon = result.mapPoint.longitude;
      let lat = result.mapPoint.latitude;

      console.log("Hit graphic at (" + lon + ", " + lat + ")", result.graphic);
    } else {
      console.log("Did not hit any graphic");
    }
  });
});

相关用法


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