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

📄 mysel3.jsp

📁 JSP开发:添加带ring 和hole的多边形到图上
💻 JSP
字号:
<%@ page import="com.esri.aims.mtier.io.*,com.esri.aims.mtier.model.map.layer.FeatureLayer,    com.esri.aims.mtier.model.map.layer.query.*,com.esri.aims.mtier.model.acetate.Point,    com.esri.aims.mtier.model.acetate.Points,com.esri.aims.mtier.model.acetate.Polygon,    com.esri.aims.mtier.model.acetate.Hole,com.esri.aims.mtier.model.acetate.Ring" %>

<jsp:useBean id="connection" class="com.esri.aims.mtier.io.ConnectionProxy" scope="page" />
<jsp:useBean id="map" class="com.esri.aims.mtier.model.map.Map" scope="page" />
<HTML><HEAD><TITLE>Geometry Test</TITLE></HEAD>
<BODY bgcolor="#ffffff"><p align="left">

<%
      //define server parameters
      String hostName = "s";   //replace with app. server host name
      int port = 5300;                //replace with app. server port number
      String serviceName = "y";    //replace with image service name

      //define where expression
      String whereExpression = "OBJECTID = 2";  //replace with where expression for filter

      //define layer index
      int pointindex = 1;                    //replace with layer index 
      int polygonindex=0;
      //set connection parameters
      connection.setConnectionType(connection.TCP);
	connection.setHost(hostName);
	connection.setPort(port);
	connection.setService(serviceName);
 
	//initialize map
      map.initMap(connection, 0, true, true, true, true);
      map.setWidth(500);
      map.setHeight(350);
	
      //get feature layer and setGeometry=true                     
      FeatureLayer fLayer_point = (FeatureLayer)map.getLayers().item(pointindex);
      FeatureLayer fLayer_polygon = (FeatureLayer)map.getLayers().item(polygonindex);

      map.getLayers().setGeometry(true);
//      out.println(fLayer_polygon.getName());
     
      //create and apply filter to layer
      com.esri.aims.mtier.model.map.layer.query.Filter filter = new com.esri.aims.mtier.model.map.layer.query.Filter();
	filter.setWhereExpression(whereExpression);
      fLayer_polygon.setFilterObject(filter); 
         
      GeometryRecordset geometry = new GeometryRecordset();
      
      //get current ArcXML request prepared by Map object 
      String arcxmlReq = map.getArcXML();
  
      //send String axl request and get back String response
      String arcXMLResponse = map.sendArcXML(arcxmlReq,map.GET_FEATURE);

      // Stores all the Geometry Result after parsing
      java.util.Vector vectorGeometry = new java.util.Vector();
      vectorGeometry = geometry.getGeometry(null,null,arcXMLResponse);

      String str1 = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ARCXML version=\"1.1\"><REQUEST>";
str1 += "<GET_IMAGE autoresize=\"false\"><PROPERTIES><ENVELOPE minx=\"113.038850322924\" miny=\"27.1448635894767\" maxx=\"122.832095845899\" maxy=\"35.1280602817952\" />";

str1 += "<IMAGESIZE width=\"500\" height=\"350\" scalesymbols=\"false\"/>";
 str1 += "<LEGEND antialiasing=\"true\" autoextend=\"false\" cansplit=\"false\" cellspacing=\"2\" columns=\"1\" display=\"true\" font=\"arial\" height=\"300\" layerfontsize=\"10\" reverseorder=\"false\" splittext=\"(cont)\" swatchheight=\"14\" swatchwidth=\"18\" title=\"Legend\" titlefontsize=\"12\" valuefontsize=\"8\" width=\"125\"/>";
str1 += "<LAYERLIST order=\"true\"  nodefault=\"false\"  dynamicfirst=\"false\" >";
str1 += "<LAYERDEF name=\"WUQU\" id=\"0\" visible=\"true\">";
str1 += "<SIMPLERENDERER>";
str1 += "<SIMPLEPOLYGONSYMBOL fillcolor=\"227,227,127\" boundarycaptype=\"round\" />";
str1 += "</SIMPLERENDERER>";
str1 += "</LAYERDEF>";
str1 += "<LAYERDEF name=\"BDZ\" id=\"1\" visible=\"true\">";
str1 += "<SPATIALQUERY subfields=\"\" searchorder=\"optimize\" >";
str1 += "<SPATIALFILTER relation=\"area_intersection\" >";
	  
	  String str2="<POLYGON>";
	  
     //print out geometry of each parts
       for (int i=0;i<vectorGeometry.size();i++){
           // Iterate through only Polygon Object
           if (vectorGeometry.get(i) instanceof Polygon){
           		Polygon polygon = (Polygon) vectorGeometry.get(i);
           		out.println("Polygon - Ring Count : " + polygon.getRingsCount());
           		out.println("<BR>");  
           		// Iterate through only Ring Object
           		Ring ring = null;
           		for (int j=0;j<polygon.getRingsCount();j++){
           			    str2=str2+"<RING>";
                 		ring = polygon.getRing(j);
                 		for (int k=0;k<ring.getHolesCount();k++){
                 			str2=str2+"<HOLE>";
					        Hole hole = ring.getHole(k);
				        	Points pts = hole.getPoints();
				        	for (int l=0;l<pts.getCount();l++){
                                    Point tPoint = pts.getPointObject(l);
                                    str2=str2+"<POINT x=\""+ tPoint.getX() + "\" y=\"" + tPoint.getY() + "\" />";
				        	}
			        		str2=str2+"</HOLE>";
                 		}
                 		Points ringPoints = ring.getPoints();
		     		    for (int k=0;k<ringPoints.getCount();k++){
                              Point tempPoint = ringPoints.getPointObject(k);
                              str2=str2+"<POINT x=\""+ tempPoint.getX() + "\" y=\"" + tempPoint.getY() + "\" />";
				         }
				         str2=str2+"</RING>";
                
               	}     
            }
       }
       String str3="</POLYGON></SPATIALFILTER></SPATIALQUERY><SIMPLERENDERER><SIMPLEMARKERSYMBOL type=\"\" color=\"255,0,255\" antialiasing=\"true\" width=\"6\" /></SIMPLERENDERER></LAYERDEF></LAYERLIST></PROPERTIES></GET_IMAGE></REQUEST></ARCXML>";
       String str = str1+str2+str3;
       arcXMLResponse = map.sendArcXML(str,map.GET_IMAGE);
      String mapURL2 = map.getMapOutput().getURL();
%>
<center><img src="<%=mapURL2%>"> </center>                      

</BODY>
</HTML>

⌨️ 快捷键说明

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