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

📄 gmlpointparser.java

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

import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;

import org.apache.log4j.Logger;

import com.esri.solutions.jitk.datasources.ogc.gml.GMLPoint;

public class GMLPointParser {
	private static final Logger _logger = Logger.getLogger(GMLPointParser.class);
	
	public GMLPointParser() {
	}
	
	/*
	 * Point Example:
	 * 
	 * <gml:Point>
	   	    <gml:pos>-122.457766445736 37.7633529139773</gml:pos> 
	   </gml:Point>
	 */	
	public GMLPoint parse(XMLEventReader xmler, XMLEvent currentEvent) throws XMLStreamException, GMLParsingException {			
		GMLPoint point = new GMLPoint();
		String currentElementName = "";
		String endElementName = "";
		
		while (xmler.hasNext()) {
			XMLEvent event = xmler.nextEvent();
			
			if (event.isStartElement()) {
				currentElementName = event.asStartElement().getName().getLocalPart();			
			}
			
			if (event.isCharacters()) {
				if (currentElementName.equalsIgnoreCase("pos")) {
					String coords = event.asCharacters().getData();
					point = parsePointFromRawGMLData(coords);
				}
			}
			
			if (event.isEndElement()) {
				endElementName = event.asEndElement().getName().getLocalPart();			
				if (endElementName.equalsIgnoreCase("Point")) {
					break;
				}
			}			
		}
		
		return point;
	}
	
	public GMLPoint parsePointFromRawGMLData(String rawGmlPoint) throws GMLParsingException {
		GMLPoint point = new GMLPoint();
		
		try {
			String[] xy = rawGmlPoint.split(" ");
			point.setX(xy[0]);
			point.setY(xy[1]);				
		} catch (Exception ex) {
			_logger.warn("<gml:pos> tag could not be split to X/Y, raw value: " + rawGmlPoint);
			point.setX(rawGmlPoint);
			point.setY("");	
			throw new GMLParsingException("Could now parse raw GML point data " + rawGmlPoint, ex.getCause());
		}
		
		return point;
	}
}

⌨️ 快捷键说明

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