📄 coverageseditoraction.java
字号:
config.setCrs(CRS.decode(config.getSrsName()));
}
config.setEnvelope(getEnvelope(form, config.getCrs()));
config.setSupportedFormats(supportedFormats(form));
config.setDefaultStyle(form.getStyleId());
if (form.getOtherSelectedStyles() != null) {
config.getStyles().clear();
for (int i = 0; i < form.getOtherSelectedStyles().length; i++) {
config.addStyle(form.getOtherSelectedStyles()[i]);
}
}
config.setName(form.getName());
config.setWmsPath(form.getWmsPath());
final StringBuffer temp = new StringBuffer(config.getFormatId());
temp.append("_").append(form.getName());
config.setDirName(temp.toString());
/**
* Sync params
*/
final Map params = new HashMap();
Iterator it = form.getParamKeys().iterator();
String paramKey;
String paramValue;
int index = 0;
while (it.hasNext()) {
paramKey = (String) it.next();
paramValue = (String) form.getParamValues().get(index);
params.put(paramKey, paramValue);
index++;
}
config.setParameters(params);
}
/**
* Execute Submit Action.
*
* @param mapping
* @param form
* @param user
* @param request
*
* @return
* @throws FactoryException
*/
private ActionForward executeSubmit(ActionMapping mapping, CoveragesEditorForm form,
UserContainer user, HttpServletRequest request)
throws IOException {
final CoverageConfig config = user.getCoverageConfig();
try {
sync(form, config, request);
} catch (FactoryException e) {
final IOException ex = new IOException(e.getLocalizedMessage());
ex.initCause(e);
throw ex;
}
final DataConfig dataConfig = (DataConfig) getDataConfig();
final StringBuffer coverage = new StringBuffer(config.getFormatId());
dataConfig.addCoverage(coverage.append(":").append(config.getName()).toString(), config);
// Don't think reset is needed (as me have moved on to new page)
// form.reset(mapping, request);
getApplicationState().notifyConfigChanged();
// Coverage no longer selected
user.setCoverageConfig(null);
return mapping.findForward("config.data.coverage");
}
/**
*
*
* @param coverageForm
* @param system
*
* @return Bounding box in lat long TODO is this correct
*/
private GeneralEnvelope getEnvelope(CoveragesEditorForm coverageForm,
CoordinateReferenceSystem crs) {
final double[] coordinates = new double[4];
final CoordinateSystem cs = crs.getCoordinateSystem();
boolean lonFirst = true;
if (AxisDirection.NORTH.equals(cs.getAxis(0).getDirection().absolute())) {
lonFirst = false;
}
boolean swapXY = !lonFirst;
// latitude index
final int latIndex = lonFirst ? 1 : 0;
final AxisDirection latitude = cs.getAxis(latIndex).getDirection();
final AxisDirection longitude = cs.getAxis((latIndex + 1) % 2).getDirection();
final boolean[] reverse = new boolean[] {
lonFirst ? (!longitude.equals(AxisDirection.EAST))
: (!latitude.equals(AxisDirection.NORTH)),
lonFirst ? (!latitude.equals(AxisDirection.NORTH))
: (!longitude.equals(AxisDirection.EAST))
};
coordinates[0] = ((!reverse[(latIndex + 1) % 2])
? ((!swapXY) ? Double.parseDouble(coverageForm.getMinX())
: Double.parseDouble(coverageForm.getMinY()))
: ((!swapXY) ? Double.parseDouble(coverageForm.getMaxX())
: Double.parseDouble(coverageForm.getMaxY())));
coordinates[1] = ((!reverse[latIndex])
? ((!swapXY) ? Double.parseDouble(coverageForm.getMinY())
: Double.parseDouble(coverageForm.getMinX()))
: ((!swapXY) ? Double.parseDouble(coverageForm.getMaxY())
: Double.parseDouble(coverageForm.getMaxX())));
coordinates[2] = ((!reverse[(latIndex + 1) % 2])
? ((!swapXY) ? Double.parseDouble(coverageForm.getMaxX())
: Double.parseDouble(coverageForm.getMaxY()))
: ((!swapXY) ? Double.parseDouble(coverageForm.getMinX())
: Double.parseDouble(coverageForm.getMinY())));
coordinates[3] = ((!reverse[latIndex])
? ((!swapXY) ? Double.parseDouble(coverageForm.getMaxY())
: Double.parseDouble(coverageForm.getMaxX()))
: ((!swapXY) ? Double.parseDouble(coverageForm.getMinY())
: Double.parseDouble(coverageForm.getMinX())));
GeneralEnvelope envelope = new GeneralEnvelope(new double[] { coordinates[0], coordinates[1] },
new double[] { coordinates[2], coordinates[3] });
envelope.setCoordinateReferenceSystem(crs);
return envelope;
}
private ActionForward executeLookupSRS(ActionMapping mapping, CoveragesEditorForm coverageForm,
UserContainer user, HttpServletRequest request)
throws IOException, ServletException {
final String formatID = coverageForm.getFormatId();
final Data catalog = getData();
CoverageStoreInfo cvStoreInfo = catalog.getFormatInfo(formatID);
if (cvStoreInfo == null) {
cvStoreInfo = new CoverageStoreInfo(getDataConfig().getDataFormat(formatID).toDTO(),
catalog);
}
final Format format = cvStoreInfo.getFormat();
AbstractGridCoverage2DReader reader = (AbstractGridCoverage2DReader) cvStoreInfo.getReader();
if (reader == null) {
reader = (AbstractGridCoverage2DReader) ((AbstractGridFormat) format).getReader(GeoserverDataDirectory
.findDataFile(cvStoreInfo.getUrl()));
}
try {
final CoordinateReferenceSystem sourceCRS = reader.getCrs();
final GeneralEnvelope gEnvelope = reader.getOriginalEnvelope();
final GeneralEnvelope targetEnvelope = gEnvelope;
GeneralEnvelope envelope = targetEnvelope;
String s = CRS.lookupIdentifier(sourceCRS, true);
if (s == null) {
coverageForm.setSrsName("UNKNOWN");
} else if (s.toUpperCase().startsWith("EPSG:")) {
coverageForm.setSrsName(s);
} else {
coverageForm.setSrsName("EPSG:" + s);
}
} catch (Exception e) {
coverageForm.setSrsName("UNKNOWN");
}
return mapping.findForward("config.data.coverage.editor");
}
private MetaDataLink metadataLink(CoveragesEditorForm coverageForm) {
MetaDataLink ml = new MetaDataLink();
if ((coverageForm.getMetadataLink() != null)
&& (coverageForm.getMetadataLink().length() > 0)) {
ml.setAbout(coverageForm.getMetadataLink());
ml.setMetadataType("other");
} else {
ml = null;
}
return ml;
}
/**
* DOCUMENT ME!
*
* @param coverageForm
*
* @return Set of keywords
*/
private List keyWords(CoveragesEditorForm coverageForm) {
LinkedList keywords = new LinkedList();
String[] array = (coverageForm.getKeywords() != null)
? coverageForm.getKeywords().split(" ") : new String[0];
final int length = array.length;
for (int i = 0; i < length; i++) {
keywords.add(array[i]);
}
return keywords;
}
private List interpolationMethods(CoveragesEditorForm coverageForm) {
LinkedList interpolationMethods = new LinkedList();
String[] array = (coverageForm.getInterpolationMethods() != null)
? coverageForm.getInterpolationMethods().split(",") : new String[0];
final int length = array.length;
for (int i = 0; i < length; i++) {
interpolationMethods.add(array[i]);
}
return interpolationMethods;
}
private List requestCRSs(CoveragesEditorForm coverageForm) {
LinkedList requestCRSs = new LinkedList();
String[] array = (coverageForm.getRequestCRSs() != null)
? coverageForm.getRequestCRSs().split(",") : new String[0];
final int length = array.length;
for (int i = 0; i < length; i++) {
requestCRSs.add(array[i]);
}
return requestCRSs;
}
private List responseCRSs(CoveragesEditorForm coverageForm) {
LinkedList responseCRSs = new LinkedList();
String[] array = (coverageForm.getResponseCRSs() != null)
? coverageForm.getResponseCRSs().split(",") : new String[0];
final int length = array.length;
for (int i = 0; i < length; i++) {
responseCRSs.add(array[i]);
}
return responseCRSs;
}
private List supportedFormats(CoveragesEditorForm coverageForm) {
LinkedList supportedFormats = new LinkedList();
String[] array = (coverageForm.getSupportedFormats() != null)
? coverageForm.getSupportedFormats().split(",") : new String[0];
final int length = array.length;
for (int i = 0; i < length; i++) {
supportedFormats.add(array[i]);
}
return supportedFormats;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -