createImageUrl(map, imageCallBack, true);
}
public void makeRasterizable(MapWidget map) {
ClientMapInfo mapInfo = map.getMapModel().getMapInfo();
MapRasterizingInfo mapRasterizingInfo = new MapRasterizingInfo();
MapView mapView = map.getMapModel().getMapView();
mapRasterizingInfo.setBounds(GeometryConverter.toDto(map.getMapModel().getMapView().getBounds()));
mapRasterizingInfo.setScale(mapView.getCurrentScale());
mapRasterizingInfo.setTransparent(true);
LegendRasterizingInfo legendRasterizingInfo = new LegendRasterizingInfo();
legendRasterizingInfo.setTitle("Legend");
FontStyleInfo font = new FontStyleInfo();
font.applyDefaults();
legendRasterizingInfo.setFont(font);
mapRasterizingInfo.setLegendRasterizingInfo(legendRasterizingInfo);
mapInfo.getWidgetInfo().put(MapRasterizingInfo.WIDGET_KEY, mapRasterizingInfo);
for (Layer<?> layer : map.getMapModel().getLayers()) {
if (layer instanceof VectorLayer) {
VectorLayer vectorLayer = (VectorLayer) layer;
VectorLayerRasterizingInfo vectorRasterizingInfo = new VectorLayerRasterizingInfo();
vectorRasterizingInfo.setPaintGeometries(true);
vectorRasterizingInfo.setPaintLabels(layer.isLabeled());
vectorRasterizingInfo.setShowing(layer.isShowing());
ClientVectorLayerInfo layerInfo = vectorLayer.getLayerInfo();
vectorRasterizingInfo.setStyle(layerInfo.getNamedStyleInfo());
if (vectorLayer.getSelectedFeatures().size() > 0) {
Set<String> selectedFeatures = vectorLayer.getSelectedFeatures();
vectorRasterizingInfo.setSelectedFeatureIds(selectedFeatures.toArray(new String[selectedFeatures
.size()]));
FeatureStyleInfo selectStyle = null;
switch (layerInfo.getLayerType()) {
case GEOMETRY:
break;
case LINESTRING:
case MULTILINESTRING:
selectStyle = mapInfo.getLineSelectStyle();
break;
case MULTIPOINT:
case POINT:
selectStyle = mapInfo.getPointSelectStyle();
break;
case MULTIPOLYGON:
case POLYGON:
selectStyle = mapInfo.getPolygonSelectStyle();
break;
}
selectStyle.applyDefaults();
vectorRasterizingInfo.setSelectionStyle(selectStyle);
}
layerInfo.getWidgetInfo().put(VectorLayerRasterizingInfo.WIDGET_KEY, vectorRasterizingInfo);
} else if (layer instanceof RasterLayer) {
RasterLayerRasterizingInfo rasterInfo = new RasterLayerRasterizingInfo();
ClientRasterLayerInfo layerInfo = (ClientRasterLayerInfo) layer.getLayerInfo();
rasterInfo.setShowing(layer.isShowing());
rasterInfo.setCssStyle(layerInfo.getStyle());
layerInfo.getWidgetInfo().put(RasterLayerRasterizingInfo.WIDGET_KEY, rasterInfo);
}
}
mapRasterizingInfo.getExtraLayers().clear();
for (WorldPaintable worldPaintable : map.getWorldPaintables().values()) {
if (worldPaintable instanceof GfxGeometry) {
ClientGeometryLayerInfo layer = new ClientGeometryLayerInfo();
GfxGeometry geometry = (GfxGeometry) worldPaintable;
layer.getGeometries().add(GeometryConverter.toDto((Geometry) geometry.getOriginalLocation()));
FeatureStyleInfo style = new FeatureStyleInfo();
style.setFillColor(geometry.getStyle().getFillColor());
style.setFillOpacity(geometry.getStyle().getFillOpacity());
style.setStrokeColor(geometry.getStyle().getStrokeColor());
style.setStrokeOpacity(geometry.getStyle().getStrokeOpacity());
style.setStrokeWidth((int) geometry.getStyle().getStrokeWidth());
style.applyDefaults();
layer.setStyle(style);
layer.setLayerType(geometry.getGeometry().getLayerType());
layer.setLabel(geometry.getId());
layer.setId(geometry.getId());
mapRasterizingInfo.getExtraLayers().add(layer);
}
}
}