我的目标是能够打开或关闭抖动强度(显示或隐藏)。单独 经由 ID
或 name
... 我在其余的数据字段选项中看到id和对象id的选项。文档...然而,我不知道如何实现... 在我下面的代码中, 你可以看到我正在做一个休眠调用, 并立即返回所有的地震图数据...... 我試著一次只返回一個地震名稱或ID... 所以, 我可以在之後 "開啟 "或 "關閉 "它們...
全碼:
<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>
请看一下Esri的教程。设置定义表达式
你可以看看下面的代码。
<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>