首页 > 其他分享 >ArcGIS Map SDK FeatureLayer点击查询要素与弹框展示

ArcGIS Map SDK FeatureLayer点击查询要素与弹框展示

时间:2023-09-06 09:55:32浏览次数:47  
标签:Map layer const FeatureLayer ArcGIS new view

ArcGIS Map SDK FeatureLayer点击查询要素与弹框展示

代码如下:

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>
      Basic Querying in FeatureLayer | Sample | ArcGIS Maps SDK for JavaScript
      4.27
    </title>

    <link
      rel="stylesheet"
      href="https://js.arcgis.com/4.27/esri/themes/light/main.css"
    />
    <script src="https://js.arcgis.com/4.27/"></script>

    <style>
      html,
      body,
      #viewDiv {
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
    <script>
      require([
        "esri/Map",
        "esri/Graphic",
        "esri/views/MapView",
        "esri/layers/FeatureLayer",
      ], (Map, Graphic, MapView, FeatureLayer) => {
        // 加载ArcGIS官方提供的FeatureLayer
        const layer = new FeatureLayer({
          // autocasts as new PortalItem()
          portalItem: {
            id: "234d2e3f6f554e0e84757662469c26d3"
          },
          outFields: ["*"]
        });

        // 加载本地发布的FeatureLayer
        // const layer = new FeatureLayer({
        //   url: "http://192.168.1.1:6080/arcgis/rest/services/xian/xian_xzqh/MapServer/0",
        //   outFields: ["*"]
        // });

        const map = new Map({
          basemap: "gray-vector",
          layers: [layer]
        });

        const view = new MapView({
          container: "viewDiv",
          map: map,
          popupEnabled: false,
          popup: {
            dockEnabled: true, // 是否可以靠边停靠
            dockOptions: {
              buttonEnabled: false, // 是否展示靠边停靠按钮
              breakpoint: false,
              position: "bottom-right"
            }
          }
        });

        //create graphic for mouse point click
        const pointGraphic = new Graphic({
          symbol: {
            type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
            color: [0, 0, 139],
            outline: {
              color: [255, 255, 255],
              width: 1.5
            }
          }
        });

        layer.load().then(() => {
          // Set the view extent to the data extent
          view.extent = layer.fullExtent;
          layer.popupTemplate = layer.createPopupTemplate();
        });

        view.on("click", (event) => {
          view.graphics.remove(pointGraphic);
          queryFeatures(event);
        });

        function queryFeatures(screenPoint) {
          const point = view.toMap(screenPoint);
          layer
            .queryFeatures({
              geometry: point,
              // 设置查询距离
              // distance: 0.5,
              // units: "miles",
              // 默认查询方式
              distance: null,
              units: null,
              spatialRelationship: "intersects",
              returnGeometry: false,
              returnQueryGeometry: true,
              outFields: ["*"]
            })
            .then((featureSet) => {
              pointGraphic.geometry = point;
              view.graphics.add(pointGraphic);
              view.openPopup({
                location: point,
                features: featureSet.features,
                featureMenuOpen: true
              });
            });
        }
      });
    </script>
  </head>
  <body>
    <div id="viewDiv"></div>
  </body>
</html>

标签:Map,layer,const,FeatureLayer,ArcGIS,new,view
From: https://www.cnblogs.com/unlockth/p/17681501.html

相关文章

  • HashMap的put方法
    HashMap结构简略图调用put()函数,如果table为空,则说明调用HashMap的无参构造函数并且第一次调用put函数,putVal内部调用resize()函数设置容量和阈值分别为16和12;(n-1)&hash进行取模计算下标,n是2的次幂,则n-1的有效位全为1,方便快速计算publicVput(Kkey,Vvalue){......
  • ArcGIS计算某个点落在遥感影像中的行数与列数
      本文介绍在ArcMap软件中,求取点要素在栅格图像中所处行号、列号的方法。  如下图所示,我们已知一张栅格图像以及其上的几个点要素;本文就以此数据为例,介绍获取点要素所处行列号的方法。  其中,本文所用的栅格图层与点要素图层都不含有任何地理参考信息。如下图所示,其为栅格......
  • SQLMAP流量分析
    本篇文章作者幽壑,本文属i春秋原创奖励计划,未经许可禁止转载。https://bbs.ichunqiu.com/thread-63533-1-1.htmlSQLMAP流量特征分析测试靶场:pikachu测试环境:PHP5.4、Apache2.0、MYSQL5.0.10测试工具:sqlmap1.5.6.3关于环境配置,记得将mysql的secure_file_priv设置为空。SHOW......
  • 关于在数据库系统MMAP的使用
    问题引出在数据库系统中对于文件I/O管理,通常有两种选择开发者自己实现bufferbool来管理文件I/O读入内存的数据使用Linux操作系统实现的MMAP系统调用映射到用户地址空间,并且利用对开发者透明的pagecache来实现页面的换入换出理论介绍 程序调用MMAP返回了指向文件内容......
  • 文盘Rust -- 生命周期问题引发的 static hashmap 锁
    2021年上半年,撸了个rustcli开发的框架,基本上把交互模式,子命令提示这些cli该有的常用功能做进去了。项目地址:https://github.com/jiashiwen/interactcli-rs。春节以前看到axum已经0.4.x了,于是想看看能不能用rust做个服务端的框架。春节后开始动手,在做的过程中会碰到各种有趣的问......
  • 文盘Rust -- 生命周期问题引发的 static hashmap 锁 | 京东云技术团队
    2021年上半年,撸了个rustcli开发的框架,基本上把交互模式,子命令提示这些cli该有的常用功能做进去了。项目地址:https://github.com/jiashiwen/interactcli-rs。春节以前看到axum已经0.4.x了,于是想看看能不能用rust做个服务端的框架。春节后开始动手,在做的过程中会碰到各种有趣的问题......
  • KdMapper扩展实现之ASUS(EneIo64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称EneIo64.sys 时间戳5AB087......
  • python内置函数 - map, reduce, filter, sort
    1,map(fn,可迭代对象)参数fn为一个参数的函数lambda方式my_list=[2,3,4,5]result=map(lambdax:x*x,my_list)#返回元素平方值的迭代器print(type(result))#<class'map'>print(isinstance(result,collections.abc.Iterator))#Truenew_list=list(re......
  • Apache IoTDB开发系统整合之MapReduce TsFile
    TsFile-Hadoop-ConnectorUserGuide关于TsFile-Hadoop-ConnectorTsFile-Hadoop-Connector实现了Hadoop对Tsfile类型的外部数据源的支持。这使用户能够通过Hadoop读取,写入和查询Tsfile。使用此连接器,咱们就可以:将单个TsFile从本地文件系统或hdfs加载到Hadoop中将特定目......
  • HashMap遍历方式
    HashMap是一个键值对的集合,我们不能通过简单的循环来遍历HashMap,所以我们一般通过以下两种方式来遍历HashMap,一种是通过KeySet集合来遍历,另一种是通过entry键值对对象来遍历。KeySet遍历HashMap通过keySet()方法获取HashMap的keySet集合遍历keySet集合,可以使用iterator迭代器或......