/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.monitor.ows.wms; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.geoserver.monitor.MonitorConfig; import org.geoserver.monitor.ows.RequestObjectHandler; import org.geoserver.ows.util.OwsUtils; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.util.logging.Logging; import org.opengis.geometry.BoundingBox; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.TransformException; import com.vividsolutions.jts.geom.Envelope; public class GetMapHandler extends RequestObjectHandler { static Logger LOGGER = Logging.getLogger("org.geoserver.monitor"); public GetMapHandler(MonitorConfig config) { super("org.geoserver.wms.GetMapRequest", config); } @Override public List<String> getLayers(Object request) { @SuppressWarnings("unchecked") List<Object> mapLayers = (List<Object>) OwsUtils.get(request, "layers"); if (mapLayers == null) { return null; } List<String> layers = new ArrayList<String>(); for (int i = 0; i < mapLayers.size(); i++) { layers.add((String) OwsUtils.get(mapLayers.get(i), "name")); } return layers; } @Override protected BoundingBox getBBox(Object request) { CoordinateReferenceSystem crs = (CoordinateReferenceSystem) OwsUtils.get(request, "crs"); Envelope env = (Envelope) OwsUtils.get(request, "bbox"); if(env == null) { return null; } BoundingBox bbox = new ReferencedEnvelope(env, crs); try { return bbox.toBounds(monitorConfig.getBboxCrs()); } catch (TransformException e) { LOGGER.log(Level.WARNING, "Could not transform bounding box to logging CRS", e); return null; } } }