我无法尝试使用html按钮打开和关闭ESRI功能层。现在,该按钮应该只是将要素图层添加到地图。要素图层(featureLayer2)是使用ESRI的ArcMap Online创建的。我无法访问ArcMap Server,因此使用动态要素图层似乎不是一种选择。要素图层在函数中创建,然后推送到函数外部的数组(myArray)。当按钮被点击时,myFunction()应该被调用。 myFunction()应该将图层添加到地图。我也无法获得最大的shapefile以某个缩放级别显示。我不确定是否需要简化形状,或者由于页面的大小,图层不会显示超过某个缩放比例。我最大的担心是让按钮工作,但如果有人有关于shapefile的建议,那也太棒了。代码如下,功能层可供公众使用,因此您应该能够运行代码并查看地图。无法用简单的html按钮打开和关闭ESRI功能层
FeatureLayerhtml, body, #map {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
#map{ position: relative;}
#legendPane {
position: absolute;
top:1%;
left:5%;
right:5%;
height:19%;
width:90%;
border: 3px solid silver;
border-radius: 25px;
background-color:grey;
z-index: 10;
}
myArray = [];
require([
"esri/map",
"esri/layers/FeatureLayer",
"dojo/domReady!"
],
function(
Map,
FeatureLayer
) {
var map = new Map("map", {
basemap: "hybrid",
center: [-91.7857, 43.3033],
zoom: 12
});
/****************************************************************
* Add feature layer - A FeatureLayer at minimum should point
* to a URL to a feature service or point to a feature collection
* object.
map.addLayer(featureLayer2);
map.addLayer(featureLayer3);
var featureLayer3 = new FeatureLayer("https://services6.arcgis.com/EnvQRR6Ah8vLF2fy/arcgis/rest/services/wsMerged/FeatureServer/0");
map.addLayer(featureLayer);
myArray.push(featureLayer2);
var featureLayer = new FeatureLayer("https://services6.arcgis.com/EnvQRR6Ah8vLF2fy/arcgis/rest/services/WBD_HU_12_IA_Select/FeatureServer/0");
var featureLayer2 = new FeatureLayer("https://services6.arcgis.com/EnvQRR6Ah8vLF2fy/arcgis/rest/services/hydricSoilsMerged/FeatureServer/0");
map.addLayer(featureLayer3);
***************************************************************/
var featureLayer = new FeatureLayer("https://services6.arcgis.com/EnvQRR6Ah8vLF2fy/arcgis/rest/services/WBD_HU_12_IA_Select/FeatureServer/0");
var featureLayer2 = new FeatureLayer("https://services6.arcgis.com/EnvQRR6Ah8vLF2fy/arcgis/rest/services/hydricSoilsMerged/FeatureServer/0");
map.addLayer(featureLayer);
myArray.push(featureLayer2);
});
function myFunction(){map.addLayer(myArray[0])};