📄 distanceconverter.java
字号:
package com.esri.solutions.jitk.common.geometry;
import java.io.IOException;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.arcgis.geometry.IGeographicCoordinateSystem;
import com.esri.arcgis.geometry.IProjectedCoordinateSystem;
import com.esri.arcgis.geometry.ISpatialReference;
import com.esri.arcgis.interop.AutomationException;
import com.esri.arcgis.server.IServerContext;
import com.esri.arcgis.system.IUnitConverter;
import com.esri.arcgis.system.UnitConverter;
import com.esri.arcgis.system.esriUnits;
import com.esri.solutions.jitk.web.tasks.elevation.ElevationTask;
public class DistanceConverter {
private static final Logger logger = LogManager.getLogger(ElevationTask.class);
public static double convertDistance(ISpatialReference sr, int iUntis, double dDistance, IServerContext ipServerContext)
throws ExceptionUnitConverterCreationFailed, ExceptionUnitConverterCreationFailed, IOException, AutomationException {
//TODO: This units conversion code seems incorrect, it was refactored from
// the buffer task. Correct this.
double dConvertedUnits = 0;
int curUnit = esriUnits.esriDecimalDegrees;
if (sr instanceof IGeographicCoordinateSystem){
curUnit = esriUnits.esriDecimalDegrees;
}
if (sr instanceof IProjectedCoordinateSystem){
curUnit = esriUnits.esriMeters;
}
IUnitConverter converter = null;
if (ipServerContext != null){
converter = (UnitConverter) ipServerContext.createObject(UnitConverter.getClsid());
}
else {
throw new NullPointerException();
}
if (converter == null) {
throw new ExceptionUnitConverterCreationFailed("Unable to create UnitConverter, returned converter null");
}
try {
dConvertedUnits = converter.convertUnits(dDistance, iUntis, curUnit);
}
catch(AutomationException ex2) {
logger.error("Unable to convert distance", ex2);
throw ex2;
}
catch(IOException ex) {
logger.error("Unable to convert distance", ex);
throw ex;
}
return dConvertedUnits;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -