⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esri_task.js

📁 ARCGIS程序,可以实现查、缩放等功能
💻 JS
字号:
/*
COPYRIGHT 1995-2005 ESRI

TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
Unpublished material - all rights reserved under the
Copyright Laws of the United States.

For additional information, contact:
Environmental Systems Research Institute, Inc.
Attn: Contracts Dept
380 New York Street
Redlands, California, USA 92373

email: contracts@esri.com
*/

function EsriTask(id, mapId) {
  this.inheritsFrom(new EsriControl(id, "Task", 0, 0, 0, 0));
  this.mapId = mapId;
  var self = this;

  this.updateAsync = function(xml, eventSources) {
    var idTag = xml.getElementsByTagName("id").item(0);
    var id = idTag.firstChild.nodeValue;
    if (id == self.id) {
      var contentTags = xml.getElementsByTagName("content");
      var content;
      if (EsriUtils.isIE) content = contentTags.item(0).firstChild.nodeValue;
      else {
        content = new XMLSerializer().serializeToString(contentTags.item(0));
        content = content.substring("<content>".length, content.indexOf("</content>"));
        content = content.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&quot;/g, "\"");
      }

      var div = document.createElement("div");
      EsriUtils.setElementStyle(div, "display:none;");
      div.innerHTML = content;

      var newTaskCell = null;
      var taskCells = [];
      var taskCellIds = [];
      var tags = ["div"];

      for (var t=0;t<tags.length;t++) {
        var elems = div.getElementsByTagName(tags[t]);
        for (var i=0;i<elems.length;i++) {
          var elem = elems.item(i);
          if (elem.id.indexOf("EsriTaskCell_") == 0) {
            taskCellIds.push(elem.id);
            taskCells[elem.id] = elem;
          }
        }

        for (var n=0;n<taskCellIds.length;n++) {
          var oldTaskCell = document.getElementById(taskCellIds[n]);
          EsriUtils.hideElement(oldTaskCell);
          var newTaskCell = taskCells[taskCellIds[n]];
          EsriUtils.hideElement(newTaskCell);
          var rect = EsriUtils.getElementBounds(newTaskCell);
          EsriUtils.cloneElementStyle(oldTaskCell, newTaskCell);
          oldTaskCell.parentNode.replaceChild(newTaskCell, oldTaskCell);
          if ("taskWindowManager" in window) {
            for (var w=0;w<taskWindowManager.windowIds.length;w++) {
              if (taskWindowManager.windows[taskWindowManager.windowIds[w]].pageElement.divId == taskCellIds[n]) {
                var win = taskWindowManager.windows[taskWindowManager.windowIds[w]];
                win.pageElement.divObject = newTaskCell;
                if (! win.fittable) {
                  if (rect.width && rect.height) {
                    var dx = win.bounds.width - win.pageElement.bounds.width;
                    var dy = win.bounds.height - win.pageElement.bounds.height;
                    win.bounds.width = rect.width + dx;
                    win.bounds.height = rect.height + dy;
                  }
                }
                taskWindowManager.loadProperties("win_" + self.id, true);
                win.update();
                win.fit();
                break;
              }
            }
          }
          EsriUtils.setElementStyle(newTaskCell, "display:block;");
        }
      }

      var formId = EsriControls.maps[mapId].formId;
      if (eventSources.indexOf(self.id) != -1) {
        var formElements = document.forms[formId].elements;
        for (var i=0;i<formElements.length;i++) {
          var elementId = formElements[i].id;
          if ((elementId.indexOf(self.id + "_action_") != -1 || elementId.indexOf(self.id + "_tool_") != -1) && elementId.indexOf("button") == -1) {
            EsriUtils.removeFormElement(formId, elementId);
            EsriUtils.removeFormElement(formId, elementId + "_value");
          }
        }
      }

      var activeToolTags = xml.getElementsByTagName("active-tool");
      if (activeToolTags.length > 0) {
        var activeTool = activeToolTags.item(0).firstChild.nodeValue;
        EsriUtils.removeFormElement(formId, activeTool);
        EsriUtils.removeFormElement(formId, activeTool + "_value");
        EsriUtils.removeFormElement(formId, self.mapId);
        EsriUtils.removeFormElement(formId, self.mapId + "_mode");
        EsriUtils.removeFormElement(formId, self.mapId + "_minx");
        EsriUtils.removeFormElement(formId, self.mapId + "_miny");
        EsriUtils.removeFormElement(formId, self.mapId + "_maxx");
        EsriUtils.removeFormElement(formId, self.mapId + "_maxy");
        EsriUtils.removeFormElement(formId, self.mapId + "_coords");
        EsriUtils.removeFormElement(formId, self.mapId + "_value");
        EsriControls.maps[self.mapId].reactivateCurrentToolItem();
      }

      for (var i=0;i<self.updateListenerNames.length;i++) self.updateListeners[self.updateListenerNames[i]](self);
    }
  }

  EsriControls.tasks[id] = this;
  EsriControls.taskIds.push(id);
  EsriControls.addPostBackTagHandler("task", EsriControls.tasks[self.id].updateAsync);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -