隐藏测量小部件并在单选按钮检查时显示
hide measurement widget and show on radio button check
我想隐藏测量小部件。并希望在选中单选按钮时显示。但是当我隐藏它时,它会变成这样并且不会在单击单选按钮时显示
这是我的代码
var measurement = new esri.dijit.Measurement({
map: map,
//measurement.hideTool("location")
// measurement.hideTool("distance")
}, dojo.byId('measurementDiv'));
measurement.startup();
measurement.hide();
measurement.hideTool("location");
measurement.hideTool("distance");
//measurement.hideTool("measurement Result");
<div class="roundedCorners" id="measureWindow" >
<div class="innerDiv roundedCorners">
<div id="measurementDiv"></div>
</div>
</div>
您可能已经这样做了,但我将从删除 measurement.hidetool ("location") 和 运行 开始。如果那没有任何作用,请尝试相同的距离。 .hide 需要在那里吗?这可能隐藏了整个事情吗?
好吧,据我了解,您想 show/hide esri 测量工具 基于单选按钮单击。
下面是它的工作代码-
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title>Measure Tool</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/themes/calcite/dijit/calcite.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/themes/calcite/esri/esri.css">
<style>
html,body {
height:100%;
width:100%;
margin:0;
}
body {
background-color:#FFF;
overflow:hidden;
font-family:"Trebuchet MS";
}
#map {
border:solid 2px #808775;
-moz-border-radius:4px;
-webkit-border-radius:4px;
border-radius:4px;
margin:5px;
padding:0px;
}
#titlePane{
width:280px;
}
</style>
</head>
<body class="calcite">
<div id="mainWindow" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline',gutters:false"
style="width:100%; height:100%;">
<div id="map" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
<!-- Radio Button container with CSS styles and positioning -->
<div style="position:absolute; right:20px; top:10px; z-Index:1000; color: white; margin-right: 20px; background: gray;">
<input type="radio" data-dojo-type="dijit/form/RadioButton" checked='checked' name="measure" id="Show" value="Show"/> <label for="Show">Show</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="measure" id="Hide" value="Hide" /> <label for="Hide">Hide</label>
</div>
<!-- Measurement tool container with CSS styles and positioning -->
<div style="position:absolute; right:20px; top:40px; z-Index:999;">
<div id="titlePane" data-dojo-type="dijit/TitlePane" data-dojo-props="title:'Measurement', closable:false, open:false">
<div id="measurementDiv"></div>
</div>
</div>
</div>
</div>
<script src="https://js.arcgis.com/3.20/"></script>
<script>
var map;
require([
"dojo/dom",
"esri/Color",
"dojo/keys",
"dojo/parser",
"esri/domUtils",
"esri/config",
"esri/sniff",
"dijit/registry",
"esri/map",
"esri/SnappingManager",
"esri/dijit/Measurement",
"esri/layers/FeatureLayer",
"esri/renderers/SimpleRenderer",
"esri/tasks/GeometryService",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"dijit/form/RadioButton",
"esri/dijit/Scalebar",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/TitlePane",
"dijit/form/CheckBox",
"dojo/domReady!"
], function(
dom, Color, keys, parser, domUtils,
esriConfig, has, registry, Map, SnappingManager, Measurement, FeatureLayer, SimpleRenderer, GeometryService, SimpleLineSymbol, SimpleFillSymbol
) {
parser.parse();
//This sample may require a proxy page to handle communications with the ArcGIS Server services. You will need to
//replace the url below with the location of a proxy on your machine. See the 'Using the proxy page' help topic
//for details on setting up a proxy page.
esriConfig.defaults.io.proxyUrl = "/proxy/";
esriConfig.defaults.io.alwaysUseProxy = false;
//This service is for development and testing purposes only. We recommend that you create your own geometry service for use within your applications
esriConfig.defaults.geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
map = new Map("map", {
basemap: "satellite",
center: [-85.743, 38.256],
zoom: 15
});
var measurement = new Measurement({
map: map
}, dom.byId("measurementDiv"));
measurement.startup();
// code to hide measure tool
registry.byId("Hide").on("click", function(){
domUtils.hide( registry.byId("titlePane"));
});
// code to show measure tool
registry.byId("Show").on("click", function(){
domUtils.show( registry.byId("titlePane"));
});
}); // domUtils.show(widget);
</script>
</body>
</html>
希望对您有所帮助:)
我想隐藏测量小部件。并希望在选中单选按钮时显示。但是当我隐藏它时,它会变成这样并且不会在单击单选按钮时显示
这是我的代码
var measurement = new esri.dijit.Measurement({
map: map,
//measurement.hideTool("location")
// measurement.hideTool("distance")
}, dojo.byId('measurementDiv'));
measurement.startup();
measurement.hide();
measurement.hideTool("location");
measurement.hideTool("distance");
//measurement.hideTool("measurement Result");
<div class="roundedCorners" id="measureWindow" >
<div class="innerDiv roundedCorners">
<div id="measurementDiv"></div>
</div>
</div>
您可能已经这样做了,但我将从删除 measurement.hidetool ("location") 和 运行 开始。如果那没有任何作用,请尝试相同的距离。 .hide 需要在那里吗?这可能隐藏了整个事情吗?
好吧,据我了解,您想 show/hide esri 测量工具 基于单选按钮单击。
下面是它的工作代码-
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title>Measure Tool</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/themes/calcite/dijit/calcite.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/themes/calcite/esri/esri.css">
<style>
html,body {
height:100%;
width:100%;
margin:0;
}
body {
background-color:#FFF;
overflow:hidden;
font-family:"Trebuchet MS";
}
#map {
border:solid 2px #808775;
-moz-border-radius:4px;
-webkit-border-radius:4px;
border-radius:4px;
margin:5px;
padding:0px;
}
#titlePane{
width:280px;
}
</style>
</head>
<body class="calcite">
<div id="mainWindow" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline',gutters:false"
style="width:100%; height:100%;">
<div id="map" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
<!-- Radio Button container with CSS styles and positioning -->
<div style="position:absolute; right:20px; top:10px; z-Index:1000; color: white; margin-right: 20px; background: gray;">
<input type="radio" data-dojo-type="dijit/form/RadioButton" checked='checked' name="measure" id="Show" value="Show"/> <label for="Show">Show</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="measure" id="Hide" value="Hide" /> <label for="Hide">Hide</label>
</div>
<!-- Measurement tool container with CSS styles and positioning -->
<div style="position:absolute; right:20px; top:40px; z-Index:999;">
<div id="titlePane" data-dojo-type="dijit/TitlePane" data-dojo-props="title:'Measurement', closable:false, open:false">
<div id="measurementDiv"></div>
</div>
</div>
</div>
</div>
<script src="https://js.arcgis.com/3.20/"></script>
<script>
var map;
require([
"dojo/dom",
"esri/Color",
"dojo/keys",
"dojo/parser",
"esri/domUtils",
"esri/config",
"esri/sniff",
"dijit/registry",
"esri/map",
"esri/SnappingManager",
"esri/dijit/Measurement",
"esri/layers/FeatureLayer",
"esri/renderers/SimpleRenderer",
"esri/tasks/GeometryService",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"dijit/form/RadioButton",
"esri/dijit/Scalebar",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/TitlePane",
"dijit/form/CheckBox",
"dojo/domReady!"
], function(
dom, Color, keys, parser, domUtils,
esriConfig, has, registry, Map, SnappingManager, Measurement, FeatureLayer, SimpleRenderer, GeometryService, SimpleLineSymbol, SimpleFillSymbol
) {
parser.parse();
//This sample may require a proxy page to handle communications with the ArcGIS Server services. You will need to
//replace the url below with the location of a proxy on your machine. See the 'Using the proxy page' help topic
//for details on setting up a proxy page.
esriConfig.defaults.io.proxyUrl = "/proxy/";
esriConfig.defaults.io.alwaysUseProxy = false;
//This service is for development and testing purposes only. We recommend that you create your own geometry service for use within your applications
esriConfig.defaults.geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
map = new Map("map", {
basemap: "satellite",
center: [-85.743, 38.256],
zoom: 15
});
var measurement = new Measurement({
map: map
}, dom.byId("measurementDiv"));
measurement.startup();
// code to hide measure tool
registry.byId("Hide").on("click", function(){
domUtils.hide( registry.byId("titlePane"));
});
// code to show measure tool
registry.byId("Show").on("click", function(){
domUtils.show( registry.byId("titlePane"));
});
}); // domUtils.show(widget);
</script>
</body>
</html>
希望对您有所帮助:)