【问题标题】:filter shakemaps by earthquake name (or id)按地震名称(或 ID)过滤抖动图
【发布时间】:2020-09-29 23:46:58
【问题描述】:

我的目标是能够通过IDname 单独打开/关闭抖动强度(显示或隐藏)...我看到了 id 和 object 选项id 在其余doc.. 的数据字段选项中可用。但是,我不确定如何实现...在我下面的代码笔中,您可以看到我正在进行休息调用并立即返回所有抖动图数据。 ..我正尝试根据地震名称或 ID 一次返回一个...所以,我可以稍后“打开”或“关闭”过滤它们...

CodePen..

完整代码:


<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>ArcGIS JavaScript Tutorials: Add layers to a map</title>
  <style>
    html, body, #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }
  </style>
  <link rel="stylesheet" href="https://js.arcgis.com/4.15/esri/themes/light/main.css">
  <script src="https://js.arcgis.com/4.15/"></script>

  <script>
    require([
      "esri/Map",
      "esri/views/MapView",
      "esri/layers/FeatureLayer",
      "esri/widgets/Legend"
    ], function(Map, MapView, FeatureLayer, Legend) {
        var map = new Map({
            basemap: "gray"
        });

        var view = new MapView({
            container: "viewDiv",  
            map: map,
            center: [-122, 37],
            zoom: 5            
        });

        view.ui.add(
            new Legend({
                view: view
          }),
            "bottom-left"
        );

    // Define a popup for USGS_Seismic_Data_v1
      var popupUSGS = {
        title: "Shake Intensity",
        content: [
          {
            type: "fields",
            fieldInfos: [
            {
                fieldName: "grid_value",
                label: "Grid Value"
              },
              {
                fieldName: "mag",
                label: "Magnitude"
              },
              {
                fieldName: "eventTime",
                label: "Event Time",
                format: {
                  dateFormat: "short-date-short-time"
                }
              },
              {
                fieldName: "updated",
                label: "Updated",
                format: {
                  dateFormat: "short-date-short-time"
                }
              },
              {
                fieldName: "url",
                label: "Url"
              }
            ]
          }
        ]
      }
    // USGS_Seismic_Data_v1 feature layer (polygons)
      var SeismicData = new FeatureLayer({
        title: "MMI - Shake Intensity",
        url:  "https://services9.arcgis.com/RHVPKKiFTONKtxq3/arcgis/rest/services/USGS_Seismic_Data_v1/FeatureServer/1/",
           outFields: ["mag","eventTime","url"],
          popupTemplate: popupUSGS
      });
      map.add(SeismicData);
    });
  </script>
</head>
<body>
  <div id="viewDiv"></div>
</body>
</html> 

【问题讨论】:

    标签: javascript esri arcgis-js-api


    【解决方案1】:

    请查看 Esri 教程,Setting a definition expression

    你可以看看下面的代码:

    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
      <title>Test</title>
      <style>
        html, body, #viewDiv {
          padding: 0;
          margin: 0;
          height: 100%;
          width: 100%;
        }
      </style>
      <link rel="stylesheet" href="https://js.arcgis.com/4.15/esri/themes/light/main.css">
      <script src="https://js.arcgis.com/4.15/"></script>
    
      <script>
        require([
          "esri/Map",
          "esri/views/MapView",
          "esri/layers/FeatureLayer",
          "esri/widgets/Legend"
        ], function(Map, MapView, FeatureLayer, Legend) {
            var map = new Map({
                basemap: "gray"
            });
            
            var view = new MapView({
                container: "viewDiv",  
                map: map,
                center: [-122, 37],
                zoom: 5            
            });
            
            view.ui.add(
                new Legend({
                    view: view
              }),
                "bottom-left"
            );
            
        // Define a popup for Shake Intensity
          var popupUSGS = {
            title: "Shake Intensity",
            content: [
              {
                type: "fields",
                fieldInfos: [
                {
                    fieldName: "grid_value",
                    label: "Grid Value"
                  },
                  {
                    fieldName: "mag",
                    label: "Magnitude"
                  },
                  {
                    fieldName: "eventTime",
                    label: "Event Time",
                    format: {
                      dateFormat: "short-date-short-time"
                    }
                  },
                  {
                    fieldName: "updated",
                    label: "Updated",
                    format: {
                      dateFormat: "short-date-short-time"
                    }
                  },
                  {
                    fieldName: "url",
                    label: "Url"
                  }
                ]
              }
            ]
          }
        // USGS_Seismic_Data_v1 feature layer (polygons)
          const SeismicData = new FeatureLayer({
            title: "MMI - Shake Intensity",
            url:  "https://services9.arcgis.com/RHVPKKiFTONKtxq3/arcgis/rest/services/USGS_Seismic_Data_v1/FeatureServer/1/",
               outFields: ["mag","eventTime","url"],
              popupTemplate: popupUSGS
          });
          
          // Filter - intensities less than 2.0 
           SeismicData.definitionExpression = "grid_value > 2",
          map.add(SeismicData);
        });
        
      </script>
    </head>
    <body>
      <div id="viewDiv"></div>
    </body>
    </html> 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2023-02-12
      • 2021-09-18
      • 2018-02-10
      • 1970-01-01
      相关资源
      最近更新 更多