获取图层信息 arcgis api for js

来源:互联网 发布:ug8.0数控编程实例 编辑:程序博客网 时间:2024/05/18 17:56

Request layer info

Description

esri/request can be used to get info about any object in the ArcGIS Server services directory. In this sample, esriRequest is used to get metadata about a layer in a map service. All of the info for the layer is printed to the console as a string and info about the layer's fields are printed to a textarea.

The technique used here could also be used to get info about a map service or any other service published to the services directory.

<!DOCTYPE html><html><head>  <title>Get ArcGIS Server Map Service Layer Field Names</title>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/css/esri.css">  <style>    body{      font-family: "Arial Unicode MS, Arial, sans-serif";    }    #content {      width: 800px; height: 350px; padding: 5px; overflow: auto;      border: solid 2px #AAAAAA; background-color: #FFFFFF;      -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; border-radius: 5px;      -moz-box-shadow: 0 0 0.5em black; -webkit-box-shadow: 0 0 0.5em black; -o-box-shadow: 0 0 0.5em black; box-shadow: 0 0 0.5em black;    }    .failure { color: red; }    #status { font-size: 12px; }  </style>    <script src="https://js.arcgis.com/3.20/"></script>  <script>    require(["dojo/dom", "dojo/on", "dojo/dom-class", "dojo/_base/json", "dojo/_base/array", "dojo/string", "esri/request", "dojo/domReady!"], function(dom, on, domClass, dojoJson, array, dojoString, esriRequest) {        dom.byId("url").value = "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/ArcGIS/rest/services/ZillowNeighborhoods-CA/FeatureServer/0";        dom.byId("content").value = "";        //handle the Go button's click event        on(dom.byId("submitRequest"), "click", getContent);        function getContent(){          var contentDiv = dom.byId("content");          contentDiv.value = "";          domClass.remove(contentDiv, "failure");          dom.byId("status").innerHTML = "Downloading...";          //get the url and setup a proxy           var url = dom.byId("url").value;          if(url.length === 0){            alert("Please enter a URL");            return;          }          var requestHandle = esriRequest({            "url": url,            "content": {              "f": "json"            },            "callbackParamName": "callback"          });          requestHandle.then(requestSucceeded, requestFailed);        }        function requestSucceeded(response, io){          var fieldInfo, pad;          pad = dojoString.pad;          //toJson converts the given JavaScript object          //and its properties and values into simple text           dojoJson.toJsonIndentStr = "  ";          console.log("response as text:\n", dojoJson.toJson(response, true));          dom.byId("status").innerHTML = "";          //show field names and aliases          if ( response.hasOwnProperty("fields") ) {            console.log("got some fields");            fieldInfo = array.map(response.fields, function(f) {              return pad("Field:", 8, " ", true) + pad(f.name, 25, " ", true) +                 pad("Alias:", 8, " ", true) + pad(f.alias, 25, " ", true) +                 pad("Type:", 8, " ", true) + pad(f.type, 25, " ", true);            });            dom.byId("content").value = fieldInfo.join("\n");          } else {            dom.byId("content").value = "No field info found. Please double-check the URL.";          }        }        function requestFailed(error, io){          domClass.add(dom.byId("content"), "failure");                    dojoJson.toJsonIndentStr = " ";          dom.byId("content").value = dojoJson.toJson(error, true);        }    });  </script></head><body>  <p>Enter the URL for a layer in a map service to access metadata about a layer in a map service using esriRequest.</p>  <p>    <input type="text" id="url" size="105"/>    <input id="submitRequest" type="button" value="GO" />    <span id="status"></span>  </p>  <p>    <h2>Content</h2>    <p>Check the console for the full response. Here we'll display Field names, aliases and types:</p>    <textarea id="content"></textarea>  </p></body></html>

演示地址:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=data_requestLayerInfo


0 0
原创粉丝点击