Package org.geoserver.kml.decorator

Source Code of org.geoserver.kml.decorator.AbstractGeoSearchDecorator

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.kml.decorator;

import static org.geoserver.ows.util.ResponseUtils.*;

import java.io.IOException;

import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.NamespaceInfo;
import org.geoserver.config.GeoServer;
import org.geoserver.kml.KmlEncodingContext;
import org.geoserver.kml.decorator.KmlDecoratorFactory.KmlDecorator;
import org.geoserver.ows.URLMangler.URLType;
import org.geoserver.wms.GetMapRequest;
import org.geotools.data.FeatureSource;
import org.geotools.map.Layer;
import org.opengis.feature.type.Name;

/**
* Base class for GeoSearch placemark decorators
*
* @author Andrea Aime - GeoSolutions
*/
public abstract class AbstractGeoSearchDecorator implements KmlDecorator {

    protected String getFeatureTypeURL(KmlEncodingContext context) throws IOException {
        GeoServer gs = context.getWms().getGeoServer();
        Catalog catalog = gs.getCatalog();
        Layer layer = context.getCurrentLayer();
        FeatureSource featureSource = layer.getFeatureSource();
        Name typeName = featureSource.getSchema().getName();
        String nsUri = typeName.getNamespaceURI();
        NamespaceInfo ns = catalog.getNamespaceByURI(nsUri);
        String featureTypeName = typeName.getLocalPart();
        GetMapRequest request = context.getRequest();
        String baseURL = request.getBaseUrl();
        String prefix = ns.getPrefix();
        return buildURL(baseURL, appendPath("rest", prefix, featureTypeName), null,
                URLType.SERVICE);
    }
}
TOP

Related Classes of org.geoserver.kml.decorator.AbstractGeoSearchDecorator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.