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

📄 postbean.java

📁 webGIS的经典资料
💻 JAVA
字号:
package com.charmdx.webgis.bean;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.esri.aims.mtier.dx.*;

public class PostBean  extends HttpServlet {
  private static final long serialVersionUID = 4526280231139593337L;
//变量声明
  String serverName = "localhost";
  String serviceName = "";
  int port = 5300;
  double minx = 0;
  double miny = 0;
  double maxx = 0;
  double maxy = 0;
  long imageWidth = 600;
  long imageHeight = 450;
  String toolMode = "";
  String activeLayerId = "0";
  String bufferLayerId = "0";
  double bufDis = 0;
  String lyrVis = "";
  String pointsXY = "";
  String strSQL = "";

  boolean doExtent = false;
  boolean doOpen = false;
  boolean doShow = false;
  String selectTool = "";

  //chart
  boolean isJoin=false;
  String chartFields="";
  String chartType="bar";

  //map service
  MapService map = null;
  MapAcetate mapAcet = null;
  MapLayersAll mapLyrs = null;

  //初始化变量
  public PostBean() {
    map=new MapService();
    mapAcet = new MapAcetate();
    mapLyrs = new MapLayersAll();
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    //init(request);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    //init(request);
  }

  public void init(HttpServletRequest request) {
    if (request.getParameter("hostName_hidden") != null) {
      serverName = request.getParameter("hostName_hidden");
    }
    if (request.getParameter("serviceName_hidden") != null) {
      serviceName = request.getParameter("serviceName_hidden");
    }
    if (request.getParameter("port_hidden") != null) {
      port = Integer.parseInt(request.getParameter("port_hidden"));
    }
    if (request.getParameter("minX_hidden") != null) {
      minx = Double.parseDouble(request.getParameter("minX_hidden"));
    }
    if (request.getParameter("minY_hidden") != null) {
      miny = Double.parseDouble(request.getParameter("minY_hidden"));
    }
    if (request.getParameter("maxX_hidden") != null) {
      maxx = Double.parseDouble(request.getParameter("maxX_hidden"));
    }
    if (request.getParameter("maxY_hidden") != null) {
      maxy = Double.parseDouble(request.getParameter("maxY_hidden"));
    }
    if (request.getParameter("imageWidth_hidden") != null) {
      imageWidth = Long.parseLong(request.getParameter("imageWidth_hidden"));
    }
    if (request.getParameter("imageHeight_hidden") != null) {
      imageHeight = Long.parseLong(request.getParameter("imageHeight_hidden"));
    }
    if (request.getParameter("toolMode_hidden") != null) {
      toolMode = request.getParameter("toolMode_hidden");
    }
    if (request.getParameter("selectTool_hidden") != null) {
      selectTool = request.getParameter("selectTool_hidden");
    }
    if (request.getParameter("acLayerID_hidden") != null) {
      activeLayerId = request.getParameter("acLayerID_hidden");
    }
    if (request.getParameter("bufLayerID_hidden") != null) {
      bufferLayerId = request.getParameter("bufLayerID_hidden");
    }
    if (request.getParameter("bufDis_hidden") != null) {
     bufDis = Double.parseDouble(request.getParameter("bufDis_hidden"));
    }
    if (request.getParameter("ptsXY_hidden") != null) {
      pointsXY = request.getParameter("ptsXY_hidden");
    }
    if (request.getParameter("strSQL_hidden") != null) {
      strSQL = request.getParameter("strSQL_hidden");
    }
    if (request.getParameter("doExtent_hidden") != null) {
      doExtent = (request.getParameter("doExtent_hidden").equalsIgnoreCase("yes") || request.getParameter("doExtent_hidden").equalsIgnoreCase("true"));
    }
    if (request.getParameter("doShow_hidden") != null) {
      doShow = (request.getParameter("doShow_hidden").equalsIgnoreCase("yes") || request.getParameter("doShow_hidden").equalsIgnoreCase("true"));
    }
    if (request.getParameter("doOpen_hidden") != null) {
      doOpen = (request.getParameter("doOpen_hidden").equalsIgnoreCase("yes") || request.getParameter("doOpen_hidden").equalsIgnoreCase("true"));
    }
    if (request.getParameter("isJoin_hidden") != null) {
      isJoin = (request.getParameter("isJoin_hidden").equalsIgnoreCase("yes") || request.getParameter("isJoin_hidden").equalsIgnoreCase("true"));
    }
    if (request.getParameter("layerVis_hidden") != null) {
      lyrVis = request.getParameter("layerVis_hidden");
    }
    if (request.getParameter("chartFields_hidden") != null) {
      chartFields = request.getParameter("chartFields_hidden");
    }
    if (request.getParameter("chartType_hidden") != null) {
      chartType = request.getParameter("chartType_hidden");
    }

  }

  //动作响应
  public void doAction(HttpServletRequest request, HttpServletResponse response) {
    try{
      map.initMapService(serverName, port, serviceName);
      map.setLegend();
      mapLyrs.setMapInstance(map.getMapInstance());      
      map.setMapWidthHeight(imageWidth, imageHeight);
      if (maxx != minx && maxy != miny) {
        map.setMapExtent(maxx, maxy, minx, miny);
      }
      if (toolMode.equalsIgnoreCase("fullextent")) {
        map.setMapFullExtent();
      }
      map.setActiveFeatureLayer(activeLayerId);
      if (!lyrVis.equals("")) {
        mapLyrs.setLayersVisible(lyrVis);
      }
      //空间和属性查询
      if ( (!pointsXY.equals("") || !strSQL.equals("")) && !selectTool.equals("")) {
        String filterType = null;
        if (selectTool.equalsIgnoreCase("selectpoint")) {
          filterType = ConfigService.FILTER_TYPE_POINT;
        }
        else if (selectTool.equalsIgnoreCase("selectrect")) {
          filterType = ConfigService.FILTER_TYPE_RECT;
        }
        else if (selectTool.equalsIgnoreCase("selectline")) {
          filterType = ConfigService.FILTER_TYPE_LINE;
          //map.createAcetateShapeLayer(map.createShape(pointsXY,filterType),ConfigService.ACETATE_LINE);
        }
        else if (selectTool.equalsIgnoreCase("selectpoly")) {
          filterType = ConfigService.FILTER_TYPE_POLY;
          //map.createAcetateShapeLayer(map.createShape(pointsXY,filterType),ConfigService.ACETATE_POLY);
        }
        else if (selectTool.equalsIgnoreCase("selectcircle")) {
          filterType = ConfigService.FILTER_TYPE_CIRCLE;
          //map.createAcetateShapeLayer(map.createShape(pointsXY,filterType),ConfigService.ACETATE_POLY);
        }
        else if (selectTool.equalsIgnoreCase("selectquery")) {
          filterType = ConfigService.FILTER_TYPE_SQL;
        }
        else {
          filterType = "";
        }
        map.filterShape(activeLayerId, map.createShape(pointsXY,filterType), "name,objectid",strSQL,doExtent);
        if(doOpen){
          RecordsetBean.setFilterMap(map.getFilterMap());
          RecordsetBean.setLocId(map.getActiveFeatureLayerId());
          String str="open('filterResult.jsp','ResultData','width=600,height=400,scrollbars,resizable');";
          response.getWriter().write("<scr" + "ipt>" + str + "</scr" + "ipt>");
        }
      }

      //缓冲分析
      if(toolMode.equalsIgnoreCase("buffer")){
        map.filterBuffer(activeLayerId,bufferLayerId,bufDis,ConfigService.BUFFER_UNIT_KILOMETERS, "name,objectid", strSQL, doExtent);
        RecordsetBean.setBufferMap(map.getBufferMap());
        RecordsetBean.setLocId(map.getBufferLayerId());
      }else{
        RecordsetBean.destroyBuffer();
      }

      //专题地图
      if(toolMode.equalsIgnoreCase("chart") && !chartFields.equals("")){
        if(isJoin){
          map.isJoinTable(isJoin);
          map.setJoinTableParam("sde.北京_区县界面","sde.s_infection", "name");
        }
        map.makeChart(activeLayerId,chartFields,chartType);
        map.setMapFullExtent();
      }

      //设置图层属性
      mapLyrs.setLayerAttribute();
      map.mapRefresh();
      this.saveJScript(request,response);
    }catch(Exception ex){
      System.out.println(ex.toString());
    }
  }

  //获取 map 变量
  public String getServerName() {
    return serverName;
  }

  public String getServiceName() {
    return serviceName;
  }

  public int getServerPort() {
    return port;
  }

  public String gettoolMode() {
    return toolMode;
  }

  public String getPointsXY() {
    return pointsXY;
  }

  public String getStrSQL() {
    return strSQL;
  }

  public String getSelectTool() {
    return selectTool;
  }

  public long getMapWidth(){
    return map.getMapWidth();
  }

  public long getMapHeight(){
    return map.getMapHeight();
  }

  public double getMinX(){
    return map.getMinX();
  }

  public double getMinY(){
    return map.getMinY();
  }

  public double getMaxX(){
    return map.getMaxX();
  }

  public double getMaxY(){
    return map.getMaxY();
  }

  public String getActiveFeatureLayerId(){
    return map.getActiveFeatureLayerId();
  }

  public String getBufferLayerId(){
    return bufferLayerId;
  }

  public String getLayersVisible(){
    return mapLyrs.getLayersVisible();
  }

  public String getLegendUrl(){
    return map.getLegendUrl();
  }

  public String getMapUrl(){
    return map.getMapUrl();
  }

  public Vector getlayerId() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_ID);
  }

  public Vector getlayerName() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_NAME);
  }

  public Vector getlayerVisible() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_VISIBLE);
  }

  public Vector getlayerType() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_TYPE);
  }

  public Vector getlayerFeatureType() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_FEATURETYPE);
  }

  public Vector getlayerMaxScale() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_MAXSCALE);
  }

  public Vector getlayerMinScale() {
    return (Vector)mapLyrs.getLayerAttribute().get(ConfigService.MAP_LAYER_MINSCALE);
  }

  public void saveJScript(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    String m_str = "top.frames(\"leftLayer\").frames(\"legendIframe\").legendImg.src=\""+this.getLegendUrl()+"\";";
    m_str += "var lyr=top.frames(\"leftLayer\").frames(\"layerIframe\").document.getElementById(\"layer_form\");";
    m_str += "if(lyr!=null) lyr.submit();";
    m_str += "var map=top.frames(\"mapLayer\");";
    m_str += "map.mapImage.src=\""+this.getMapUrl()+"\";";
    m_str += "map.mapImage.style.top = 0;map.mapImage.style.left = 0;";

   for(int i=0;i<this.getlayerId().size();i++) {
     m_str += "map.LayerID["+i+"]=\""+this.getlayerId().get(i)+"\";";
     m_str += "map.LayerName["+i+"]=\""+this.getlayerName().get(i)+"\";";
     m_str += "map.LayerType["+i+"]=\""+this.getlayerType().get(i)+"\";";
     m_str += "map.LayerVisible["+i+"]="+this.getlayerVisible().get(i)+";";
     m_str += "map.LayerMaxScale["+i+"]="+this.getlayerMaxScale().get(i)+";";
     m_str += "map.LayerMinScale["+i+"]="+this.getlayerMinScale().get(i)+";";
     m_str += "map.LayerFeatureType["+i+"]=\""+this.getlayerFeatureType().get(i)+"\";";
   }

   m_str += "map.updateMapAttrib(\""+this.getActiveFeatureLayerId()+"\",\""+this.getServerName()+"\",\""+this.getServiceName()+"\","+this.getServerPort()+");";
   m_str += "map.updateCoords("+this.getMinX()+","+this.getMinY()+","+this.getMaxX()+","+this.getMaxY()+");";
   m_str += "map.hideLayer(\"LoadData\");";

   response.getWriter().write("<scr" + "ipt>" + m_str + "</scr" + "ipt>");
  }

}

⌨️ 快捷键说明

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