📄 multigeometrygraphicsresource.java
字号:
if (_selectedShapes != null) {
_logger.debug(_selectedShapes.size() + " shapes highlighted");
for (QueryResult result : _selectedShapes) {
result.highlight();
}
} else _logger.debug("No shapes selected to hightlight");
}
public void clearHighlights() {
if(_selectedShapes != null) {
_logger.debug(_selectedShapes.size() + " shapes highlights cleared.");
for (QueryResult result : _selectedShapes) {
result.getWebQuery().clearGraphic(result.getHighlightGeometry());
}
} else _logger.debug("There are no selected shapes to clear hightlights");
}
public void deleteSelectedShapes() {
_logger.debug("Deleting selected shapes...");
if(_selectedShapes != null)
for(QueryResult result : _selectedShapes) {
removeGraphicFeature((String)result.getDetails().get(_fid));
}
else _logger.debug("There are no selected shapes to delete.");
}
public void moveSelectedShape(WebMap webMap, WebPoint centroid) throws Exception {
int selectedCount = getSelectedCount();
if(selectedCount == 1) {
GraphicFeature feature = getGraphicFeature((String)_selectedShapes.get(0).getDetails().get(_fid));
if (feature != null) {
WebGeometry webGeo = feature.getGeometry();
WebGeometryOffsetter offsetter = new WebGeometryOffsetter();
_logger.debug("Geometry before move:" + feature.getGeometry());
WebGeometry movedGeo = offsetter.move(webMap, webGeo, centroid);
_logger.debug("Geometry after move: " + feature.getGeometry());
feature.setGeometry(movedGeo);
}
} else {
String sError = selectedCount + " features were selected but only 1 is allowed to be selected to perform a move.";
_logger.error(sError);
throw new Exception(sError);
}
}
protected GraphicFeature getGraphicFeature(String fid) {
GraphicFeature feature = null;
for(Iterator<GraphicsLayer> i = gResource.getLayers(true).iterator(); i.hasNext();) {
GraphicsLayer layer = i.next();
if(layer instanceof MultiGeometryGraphicsLayer) {
feature = ((MultiGeometryGraphicsLayer)layer).getGraphicFeature(fid);
if(feature != null) return feature;
}
}
_logger.warn("Feature 'FID=" + fid + "' was not found.");
return feature;
}
protected void removeGraphicFeature(String fid) {
_logger.debug("Removing graphic feature 'FID=" + fid + "'.");
for(Iterator<GraphicsLayer> i = gResource.getLayers(true).iterator(); i.hasNext();) {
GraphicsLayer layer = i.next();
if(layer instanceof MultiGeometryGraphicsLayer && ((MultiGeometryGraphicsLayer)layer).removeGraphicFeature(fid)) return;
}
_logger.warn("Feature 'FID=" + fid + "' was not found.");
}
public void deleteAllGraphicFeatures() {
for(Iterator<GraphicsLayer> i = gResource.getLayers(true).iterator(); i.hasNext();) {
GraphicsLayer layer = i.next();
if(layer instanceof MultiGeometryGraphicsLayer)
layer.removeAllGraphicFeatures();
}
}
public void deleteAllGraphics() {
getGraphicsLayer().removeAllGraphicFeatures();
}
public void deleteAllLabels() {
getLabelLayer().removeAllGraphicFeatures();
}
public void deleteAllShapes() {
getPointLayer().removeAllGraphicFeatures();
getLineLayer().removeAllGraphicFeatures();
getPolygonLayer().removeAllGraphicFeatures();
}
public List<GraphicsLayer> getLayers() {
return gResource.getLayers(true);
}
protected WebExtent createExtent(WebPoint point, int tolerance) {
WebExtent ext = new WebExtent();
ext.setSpatialReference(point.getSpatialReference());
ext.setMaxX(point.getX() + tolerance);
ext.setMaxY(point.getY() + tolerance);
ext.setMinX(point.getX() - tolerance);
ext.setMinY(point.getY() - tolerance);
return ext;
}
public MultiGeometryGraphicsLayer addLayer(String layerName) {
MultiGeometryGraphicsLayer layer = null;
if(layerName != null && layerName.length() > 0) {
layer = getLayer(layerName);
if(layer == null) {
layer = new MultiGeometryGraphicsLayer();
layer.setName(layerName);
layer.setVisible(true);
gResource.addGraphicsLayer(layer);
addLayerInfo(layerName);
} //else _logger.error("Attempt was made to add graphics layer '" + layerName + "' to graphics resource '" + gResource.getAlias() + "', but layer with such name already exists.");
} else _logger.error("Attempt was made to add graphics layer '" + layerName + "' to graphics resource '" + gResource.getAlias() + "'. Wrong layer name provided.");
return layer;
}
public MultiGeometryGraphicsLayer getLayer(String layerName) {
if(layerName != null && layerName.length() > 0)
for(Iterator<GraphicsLayer> i = gResource.getLayers(true).iterator(); i.hasNext();) {
GraphicsLayer layer = i.next();
if(layer instanceof MultiGeometryGraphicsLayer && layer.getName().equals(layerName))
return (MultiGeometryGraphicsLayer) layer;
}
return null;
}
public MultiGeometryGraphicsLayer getGraphicsLayer() {
return addLayer(graphicsLayerName);
}
public MultiGeometryGraphicsLayer getLabelLayer() {
return addLayer(labelLayerName);
}
public MultiGeometryGraphicsLayer getPointLayer() {
return addLayer(pointLayerName);
}
public MultiGeometryGraphicsLayer getLineLayer() {
return addLayer(lineLayerName);
}
public MultiGeometryGraphicsLayer getPolygonLayer() {
return addLayer(polygonLayerName);
}
private WebSimpleMarkerSymbol getHighlightPointSymbol() {
WebSimpleMarkerSymbol pointSymbol = null;
WebContext webContext = getContext();
if(webContext != null) {
WebQuery webQuery = webContext.getWebQuery();
pointSymbol = webQuery.getPointGraphicSymbol();
if(pointSymbol == null)
pointSymbol = new WebSimpleMarkerSymbol();
}
return pointSymbol;
}
private WebSimpleLineSymbol getHighlightLineSymbol() {
WebSimpleLineSymbol lineSymbol = null;
WebContext webContext = getContext();
if(webContext != null) {
WebQuery webQuery = webContext.getWebQuery();
lineSymbol = webQuery.getLineGraphicSymbol();
if(lineSymbol == null)
lineSymbol = new WebSimpleLineSymbol();
}
return lineSymbol;
}
private WebSimplePolygonSymbol getHighlightPolygonSymbol() {
WebSimplePolygonSymbol polygonSymbol = null;
WebContext webContext = getContext();
if(webContext != null) {
WebQuery webQuery = webContext.getWebQuery();
polygonSymbol = webQuery.getPolygonGraphicSymbol();
if(polygonSymbol == null)
polygonSymbol = new WebSimplePolygonSymbol();
}
return polygonSymbol;
}
public String getGraphicsLayerName() {
return this.graphicsLayerName;
}
public String getLabelLayerName() {
return this.labelLayerName;
}
public String getPointLayerName() {
return this.pointLayerName;
}
public String getLineLayerName() {
return this.lineLayerName;
}
public String getPolygonLayerName() {
return this.polygonLayerName;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -