2017-05-09 9 views
0

私は測定ウィジェットを非表示にしたいと考えました。ラジオボタンがチェックされたときに表示したかった。私はそれを隠すときには、それはこのようになり、ラジオボタンの上に表示されません。ここに測定ウィジェットを非表示にしてラジオボタンのチェックを表示

enter image description here

をクリックして私のコードは、あなたはすでにこれを行っているかもしれませんが、私は削除して開始すると

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> 

答えて

1

まあ、ラジオボタンのクリックに基づいてesri測定ツールを表示/非表示することを理解しています。以下は

これはあなたを助けることを望んIT-

<!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>

のための作業コードです:)

0

ですmeasurement.hidetool( "location")を実行し、再度実行します。それが何もしないなら、距離のために同じことを試してください。 .hideはそこにいる必要がありますか?それはおそらくすべてを隠している可能性がありますか?

+0

全体のウィジェットを非表示にする、その後に表示したいですラジオボタンのチェックが –

+0

の場合はOKです。それは理にかなっています。謝罪します。私はあなたがマウスがボタン領域に入るまでボタンが隠れたままであることを示すwhile文が必要になると思います。おそらく役に立つかもしれない.mouseenter()というjquery関数があります。それは役に立ちましたか?あなたはまだ答えを持っていない場合私は少し後でも助けることができるはずです! – alexff7fan

+0

JavaScriptはありますか?私は、ラジオボタンがチェックされるまでウィジェットが隠されたままにしておきたい。 –

関連する問題