📄 geomutil.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 + -