Search in sources :

Example 1 with WhereType

use of org.geotoolkit.georss.xml.v100.WhereType in project geotoolkit by Geomatys.

the class OwcXmlIO method write.

private static FeedType write(final MapLayers context) throws FactoryException {
    final FeedType feed = ATOM_FACTORY.createFeedType();
    final LinkType link = ATOM_FACTORY.createLinkType();
    link.setRel("profile");
    link.setHref("http://www.opengis.net/spec/owc-atom/1.0/req/core");
    link.setTitle(context.getIdentifier() == null ? "" : context.getIdentifier());
    feed.getAuthorOrCategoryOrContributor().add(ATOM_FACTORY.createFeedTypeLink(link));
    final TextType title = ATOM_FACTORY.createTextType();
    title.getContent().add(context.getIdentifier() == null ? "" : context.getIdentifier());
    feed.getAuthorOrCategoryOrContributor().add(ATOM_FACTORY.createFeedTypeTitle(title));
    final Envelope aoi = context.getAreaOfInterest();
    if (aoi != null) {
        final String ogc = IdentifiedObjects.lookupURN(aoi.getCoordinateReferenceSystem(), null);
        final WhereType where = GEORSS_FACTORY.createWhereType();
        final DirectPositionType lowerCorner = new DirectPositionType(aoi.getLowerCorner());
        final DirectPositionType upperCorner = new DirectPositionType(aoi.getUpperCorner());
        final EnvelopeType envelopeType = new EnvelopeType(null, lowerCorner, upperCorner, ogc);
        envelopeType.setSrsDimension(2);
        where.setEnvelope(envelopeType);
        feed.getAuthorOrCategoryOrContributor().add(GEORSS_FACTORY.createWhere(where));
    }
    for (final MapItem mapItem : context.getComponents()) {
        toEntry(null, mapItem, feed.getAuthorOrCategoryOrContributor());
    }
    return feed;
}
Also used : WhereType(org.geotoolkit.georss.xml.v100.WhereType) FeedType(org.w3._2005.atom.FeedType) EnvelopeType(org.geotoolkit.gml.xml.v311.EnvelopeType) DirectPositionType(org.geotoolkit.gml.xml.v311.DirectPositionType) LinkType(org.w3._2005.atom.LinkType) Envelope(org.opengis.geometry.Envelope) MapItem(org.apache.sis.portrayal.MapItem) TextType(org.w3._2005.atom.TextType)

Example 2 with WhereType

use of org.geotoolkit.georss.xml.v100.WhereType in project geotoolkit by Geomatys.

the class OWCTest method owcMarshallTest.

@Test
public void owcMarshallTest() throws JAXBException, IOException, ParserConfigurationException, SAXException {
    final FeedType feed = new FeedType();
    final List<Object> entriesToSet = feed.getAuthorOrCategoryOrContributor();
    final IdType idFeed = new IdType();
    idFeed.setValue("Test id");
    entriesToSet.add(OBJ_ATOM_FACT.createEntryTypeId(idFeed));
    final TextType title = new TextType();
    title.getContent().add("Test");
    entriesToSet.add(OBJ_ATOM_FACT.createEntryTypeTitle(title));
    final String layerName = "testlayer";
    final String url = "http://myhost.com/constellation/WS/wms/test";
    final DirectPositionType lowerCorner = new DirectPositionType(-180.0, -90.0);
    final DirectPositionType upperCorner = new DirectPositionType(180.0, 90.0);
    final EnvelopeType envelope = new EnvelopeType(null, lowerCorner, upperCorner, "CRS:84");
    final WhereType where = new WhereType();
    where.setEnvelope(envelope);
    entriesToSet.add(OBJ_GEORSS_FACT.createWhere(where));
    final EntryType newEntry = new EntryType();
    final List<Object> entryThings = newEntry.getAuthorOrCategoryOrContent();
    final IdType idNewEntry = new IdType();
    idNewEntry.setValue("Web Map Service Layer");
    entryThings.add(OBJ_ATOM_FACT.createEntryTypeId(idNewEntry));
    final TextType titleNewEntry = new TextType();
    titleNewEntry.getContent().add(layerName);
    entryThings.add(OBJ_ATOM_FACT.createEntryTypeTitle(title));
    final org.w3._2005.atom.ContentType content = new org.w3._2005.atom.ContentType();
    content.setType("html");
    entryThings.add(OBJ_ATOM_FACT.createEntryTypeContent(content));
    final CategoryType category = new CategoryType();
    category.setScheme("http://www.opengis.net/spec/owc/active");
    category.setTerm("true");
    entryThings.add(OBJ_ATOM_FACT.createEntryTypeCategory(category));
    final OfferingType offering = new OfferingType();
    offering.setCode("http://www.opengis.net/spec/owc-atom/1.0/req/wms");
    final OperationType opCaps = new OperationType();
    opCaps.setCode("GetCapabilities");
    opCaps.setMethod(MethodCodeType.GET);
    final StringBuilder capsUrl = new StringBuilder();
    capsUrl.append(url).append("?REQUEST=GetCapabilities&SERVICE=WMS");
    opCaps.setHref(capsUrl.toString());
    offering.getOperationOrContentOrStyleSet().add(OBJ_OWC_FACT.createOfferingTypeOperation(opCaps));
    final OperationType opGetMap = new OperationType();
    opGetMap.setCode("GetMap");
    opGetMap.setMethod(MethodCodeType.GET);
    final String defStyle = "default";
    final StringBuilder getMapUrl = new StringBuilder();
    getMapUrl.append(url).append("?REQUEST=GetMap&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=true&WIDTH=1024&HEIGHT=768&CRS=CRS:84&BBOX=").append("-5,40,15,60").append("&LAYERS=").append(layerName).append("&STYLES=").append(defStyle);
    opGetMap.setHref(getMapUrl.toString());
    offering.getOperationOrContentOrStyleSet().add(OBJ_OWC_FACT.createOfferingTypeOperation(opGetMap));
    entryThings.add(OBJ_OWC_FACT.createOffering(offering));
    entriesToSet.add(OBJ_ATOM_FACT.createEntry(newEntry));
    final Marshaller marsh = OwcMarshallerPool.getPool().acquireMarshaller();
    final StringWriter sw = new StringWriter();
    marsh.marshal(feed, sw);
    OwcMarshallerPool.getPool().recycle(marsh);
    assertXmlEquals(EXP_RESULT, sw.toString(), "xmlns:*");
}
Also used : EnvelopeType(org.geotoolkit.gml.xml.v311.EnvelopeType) Marshaller(javax.xml.bind.Marshaller) DirectPositionType(org.geotoolkit.gml.xml.v311.DirectPositionType) WhereType(org.geotoolkit.georss.xml.v100.WhereType) StringWriter(java.io.StringWriter) org.w3._2005.atom(org.w3._2005.atom) Test(org.junit.Test)

Example 3 with WhereType

use of org.geotoolkit.georss.xml.v100.WhereType in project geotoolkit by Geomatys.

the class OwcXmlIO method read.

private static MapLayers read(final FeedType feed) throws JAXBException, FactoryException, DataStoreException {
    final MapLayers context = MapBuilder.createContext();
    for (Object o : feed.getAuthorOrCategoryOrContributor()) {
        if (o instanceof JAXBElement) {
            o = ((JAXBElement) o).getValue();
        }
        if (o instanceof TextType) {
            final TextType title = (TextType) o;
            title.getContent();
        } else if (o instanceof WhereType) {
            final WhereType where = (WhereType) o;
            final EnvelopeType envelopeType = where.getEnvelope();
            context.setAreaOfInterest(envelopeType);
        } else if (o instanceof EntryType) {
            final EntryType entry = (EntryType) o;
            final MapItem item = readEntry(entry);
            // find insert parent
            final String[] path = item.getIdentifier().split("/");
            MapLayers parent = context;
            for (int i = 0; i < path.length - 1; i++) {
                parent = (MapLayers) findItem(parent, path[i]);
            }
            item.setIdentifier(path[path.length - 1]);
            parent.getComponents().add(item);
        }
    }
    return context;
}
Also used : WhereType(org.geotoolkit.georss.xml.v100.WhereType) EnvelopeType(org.geotoolkit.gml.xml.v311.EnvelopeType) EntryType(org.w3._2005.atom.EntryType) JAXBElement(javax.xml.bind.JAXBElement) MapItem(org.apache.sis.portrayal.MapItem) MapLayers(org.apache.sis.portrayal.MapLayers) TextType(org.w3._2005.atom.TextType)

Aggregations

WhereType (org.geotoolkit.georss.xml.v100.WhereType)3 EnvelopeType (org.geotoolkit.gml.xml.v311.EnvelopeType)3 MapItem (org.apache.sis.portrayal.MapItem)2 DirectPositionType (org.geotoolkit.gml.xml.v311.DirectPositionType)2 TextType (org.w3._2005.atom.TextType)2 StringWriter (java.io.StringWriter)1 JAXBElement (javax.xml.bind.JAXBElement)1 Marshaller (javax.xml.bind.Marshaller)1 MapLayers (org.apache.sis.portrayal.MapLayers)1 Test (org.junit.Test)1 Envelope (org.opengis.geometry.Envelope)1 org.w3._2005.atom (org.w3._2005.atom)1 EntryType (org.w3._2005.atom.EntryType)1 FeedType (org.w3._2005.atom.FeedType)1 LinkType (org.w3._2005.atom.LinkType)1