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

📄 geomutil.java

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

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Iterator;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.data.geometry.WebPolyline;
import com.esri.adf.web.data.geometry.WebPath;
import com.esri.arcgis.geometry.Point;
import com.esri.arcgis.geometry.Polyline;
import com.esri.arcgis.geometry.Path;
import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.geometry.IGeometry;
import com.esri.arcgis.system.esriUnits;
import com.esri.adf.web.ags.data.AGSLocalMapResource;
import org.apache.log4j.Logger;

public class GeomUtil {
	private static Logger logger = Logger.getLogger(GeomUtil.class.getName());

	private static final String INCHES = "Inches";
	private static final String POINTS = "Points";
	private static final String FEET = "Feet";
	private static final String YARDS = "Yards";
	private static final String MILES = "Miles";
	private static final String NAUTICAL_MILES = "Nautical Miles";
	private static final String MILLIMETERS = "Millimeters";
	private static final String CENTIMETERS = "Centimeters";
	private static final String METERS = "Meters";
	private static final String KILOMETERS = "Kilometers";
	private static final String DECIMAL_DEGREES = "Decimal Degrees";
	private static final String DECIMETERS = "Decimeters";

	public GeomUtil() {
	}

	public static Integer findUnit(String unit) {
		try {
			if (unit == null) return new Integer(esriUnits.esriFeet);
			if (unit.equalsIgnoreCase(INCHES)) return new Integer(esriUnits.esriInches);
			if (unit.equalsIgnoreCase(POINTS)) return new Integer(esriUnits.esriPoints);
			if (unit.equalsIgnoreCase(FEET)) return new Integer(esriUnits.esriFeet);
			if (unit.equalsIgnoreCase(YARDS)) return new Integer(esriUnits.esriYards);
			if (unit.equalsIgnoreCase(MILES)) return new Integer(esriUnits.esriMiles);
			if (unit.equalsIgnoreCase(NAUTICAL_MILES)) return new Integer(esriUnits.esriNauticalMiles);
			if (unit.equalsIgnoreCase(MILLIMETERS)) return new Integer(esriUnits.esriMillimeters);
			if (unit.equalsIgnoreCase(CENTIMETERS)) return new Integer(esriUnits.esriCentimeters);
			if (unit.equalsIgnoreCase(METERS)) return new Integer(esriUnits.esriMeters);
			if (unit.equalsIgnoreCase(KILOMETERS)) return new Integer(esriUnits.esriKilometers);
			if (unit.equalsIgnoreCase(DECIMAL_DEGREES)) return new Integer(esriUnits.esriDecimalDegrees);
			if (unit.equalsIgnoreCase(DECIMETERS)) return new Integer(esriUnits.esriDecimeters);
		}
		catch(Exception e) {
			logger.error("Unable to find unit", e);
		}
		
		return new Integer(esriUnits.esriFeet);
	}

	public static LinkedHashMap<Integer, String> getUnitList() {
		try {
			LinkedHashMap<Integer, String> unitList = new LinkedHashMap<Integer, String>();
			unitList.put(new Integer(esriUnits.esriInches), INCHES);
			unitList.put(new Integer(esriUnits.esriPoints), POINTS);
			unitList.put(new Integer(esriUnits.esriFeet), FEET);
			unitList.put(new Integer(esriUnits.esriYards), YARDS);
			unitList.put(new Integer(esriUnits.esriMiles), MILES);
			unitList.put(new Integer(esriUnits.esriNauticalMiles), NAUTICAL_MILES);
			unitList.put(new Integer(esriUnits.esriMillimeters), MILLIMETERS);
			unitList.put(new Integer(esriUnits.esriCentimeters), CENTIMETERS);
			unitList.put(new Integer(esriUnits.esriMeters), METERS); ;
			unitList.put(new Integer(esriUnits.esriKilometers), KILOMETERS);
			unitList.put(new Integer(esriUnits.esriDecimalDegrees), DECIMAL_DEGREES);
			unitList.put(new Integer(esriUnits.esriDecimeters), DECIMETERS);
			return unitList;
		}
		catch (Exception e) {
			logger.error("Unable to get unit list", e);
		}
		
		return null;
	}

	public static Polyline convertWebPolyline(WebPolyline webPolyline, AGSLocalMapResource mrl) {
		try {
			List<WebPath> paths = webPolyline.getPaths();
			Iterator<WebPath> it = paths.iterator();
			Polyline polyline = (Polyline)mrl.createArcObject(Polyline.getClsid());
			
			while (it.hasNext()) {
				WebPath webPath = (WebPath)it.next();
				List<WebPoint> webPoints = webPath.getPoints();
				Path path = (Path)mrl.createArcObject(Path.getClsid());
				Iterator<WebPoint> pit = webPoints.iterator();
				
				while (pit.hasNext()) {
					WebPoint webPoint = (WebPoint)pit.next();
					IPoint point = (IPoint)mrl.createArcObject(Point.getClsid());
					point.setX(webPoint.getX());
					point.setY(webPoint.getY());
					path.addPoint(point, null, null);
				}
				
				polyline.addGeometry((IGeometry)path, null, null);
			}
			
			return polyline;
		}
		catch(Exception e) {
			logger.error("Unable to convert WebPolyline", e);
		}
		
		return null;
	}
}

⌨️ 快捷键说明

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