Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!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.23/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.23/"></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>
- <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>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement