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

📄 gmlmulticurveconverter.java

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

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

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 GMLMultiCurveConverter implements IGMLGeometryConverter {
	private static final Logger _logger = LogManager.getLogger(GMLMultiCurveConverter.class);
	
	public GMLMultiCurveConverter() {
	}
	
	public WebGeometry toWebGeometry(IGMLGeometry geometry) throws Exception {
		WebPolyline webPolyline = new WebPolyline();
		GMLMultiCurve mc = (GMLMultiCurve) geometry;
		String x;
		String y;
		int ringNm = 0;
		
		for (GMLLineString ls : mc.getLineStrings()) {
			ringNm++;
			String posList = ls.getPostList();
			WebPath path = new WebPath();
			
			if (posList != null) {
				String[] coords = posList.split(" ");
				
				if (coords != null) {
					for (int index = 0; index < coords.length; index++) {
						WebPoint point = new WebPoint();
						y = coords[index];
						point.setY(Double.parseDouble(y));
						
						if ((index + 1) < coords.length) {
							index++;
							x = coords[index];
						} else {
							throw new Exception("Last coordinate missing x value");
						}
						
						point.setX(Double.parseDouble(x));
						path.addPoint(point);
					}
					
					webPolyline.addPath(path);
				} else {
					_logger.error("Failed on converting path #" + ringNm);
					_logger.error("Position List: " + posList);
					throw new Exception("Parsing coordinate list yeilded null array");
				}
			} else {
				_logger.error("Failed on converting path #" + ringNm);
				_logger.error("Position List: " + posList);
				throw new Exception("Position list null for path");
			}
		}
		
		return webPolyline;
	}
}

⌨️ 快捷键说明

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