當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。