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

📄 webpolylineconverter.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.data.gml;

import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPath;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.data.geometry.WebPolyline;
import com.esri.solutions.jitk.datasources.ogc.gml.GMLLineString;
import com.esri.solutions.jitk.datasources.ogc.gml.GMLMultiCurve;
import com.esri.solutions.jitk.datasources.ogc.gml.IGMLGeometry;

public class WebPolylineConverter implements IWebGeometryConverter {
	enum GMLPolylineType {
		LineString,
		GMLMultiCurve
	}
	
	protected GMLPolylineType _lineType;
	
	public WebPolylineConverter(GMLPolylineType lineType) {
		_lineType = lineType;
	}
	
	public IGMLGeometry toGMLGeometry(WebGeometry geometry) {
		switch (_lineType) {
		case LineString:
			return toGMLLineString(geometry);
		case GMLMultiCurve:
		default:
			return toGMLMultiCurve(geometry);
		}
	}
	
	public IGMLGeometry toGMLLineString(WebGeometry geometry) {
		GMLLineString gmlLineString = new GMLLineString();
		WebPolyline webPolyline = (WebPolyline) geometry;
		StringBuilder lineString = new StringBuilder();
		
		for (WebPath path : webPolyline.getPaths()) {
			for (WebPoint point : path.getPoints()) {
				if (lineString.length() > 0) {
					lineString.append(" ");
				}
				
				lineString.append(point.getY());
				lineString.append(" ");
				lineString.append(point.getX());			
			}
		}
		
		gmlLineString.setPostList(lineString.toString());
		
		return gmlLineString;
	}
	
	
	public IGMLGeometry toGMLMultiCurve(WebGeometry geometry) {
		GMLMultiCurve mc = new GMLMultiCurve();
		WebPolyline webPolyline = (WebPolyline) geometry;
		
		for (WebPath path : webPolyline.getPaths()) {
			StringBuilder lineString = new StringBuilder();
			GMLLineString gmlLineString = new GMLLineString();
			
			for (WebPoint point : path.getPoints()) {
				if (lineString.length() > 0) {
					lineString.append(" ");
				}
				
				lineString.append(point.getY());
				lineString.append(" ");
				lineString.append(point.getX());			
			}
			
			gmlLineString.setPostList(lineString.toString());
			mc.addLineString(gmlLineString);
		}
		
		return mc;
	}	
}

⌨️ 快捷键说明

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