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

📄 multigeometrygraphicsresource.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		
		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 + -