Search in sources :

Example 1 with WFSDataStore

use of org.geotools.data.wfs.WFSDataStore in project OpenTripPlanner by opentripplanner.

the class WFSNotePollingGraphUpdater method setup.

/**
 * Setup the WFS data source and add the DynamicStreetNotesSource to the graph
 */
@Override
public void setup() throws IOException, FactoryException {
    LOG.info("Setup WFS polling updater");
    HashMap<String, Object> connectionParameters = new HashMap<>();
    connectionParameters.put(WFSDataStoreFactory.URL.key, url);
    WFSDataStore data = (new WFSDataStoreFactory()).createDataStore(connectionParameters);
    // Read only single feature type from the source
    query = new Query(featureType);
    // Get coordinates in WGS-84
    query.setCoordinateSystem(CRS.decode("EPSG:4326", true));
    featureSource = data.getFeatureSource(featureType);
    graph.streetNotesService.addNotesSource(notesSource);
}
Also used : Query(org.geotools.data.Query) HashMap(java.util.HashMap) WFSDataStore(org.geotools.data.wfs.WFSDataStore) WFSDataStoreFactory(org.geotools.data.wfs.WFSDataStoreFactory)

Example 2 with WFSDataStore

use of org.geotools.data.wfs.WFSDataStore in project coastal-hazards by USGS-CIDA.

the class WFSGetDomain method getDomainValuesAsStrings.

public Set<String> getDomainValuesAsStrings(WFSService service, String attribute) throws IOException {
    Set<String> domain = new HashSet<>();
    URL getCapsUrl = WFSDataStoreFactory.createGetCapabilitiesRequest(new URL(service.getEndpoint()), Version.v1_1_0);
    log.debug("Getting domains from wfs at " + getCapsUrl);
    Map params = new HashMap<>();
    params.put(WFSDataStoreFactory.URL.key, getCapsUrl);
    params.put(WFSDataStoreFactory.TIMEOUT.key, TIMEOUT_MILLISECONDS);
    WFSDataStore wfs = datastore.createDataStore(params);
    if (wfs == null) {
        log.debug("Could not set up WFS datastore");
        throw new WFSException("Could not set up WFS datastore");
    }
    try {
        Query query = new Query(service.getTypeName(), Filter.INCLUDE, new String[] { attribute });
        SimpleFeatureSource featureSource = wfs.getFeatureSource(service.getTypeName());
        SimpleFeatureCollection features = featureSource.getFeatures(query);
        SimpleFeatureIterator iterator = features.features();
        while (iterator.hasNext()) {
            SimpleFeature next = iterator.next();
            Object attr = next.getAttribute(attribute);
            if (attr instanceof String) {
                String attrVal = (String) attr;
                domain.add(attrVal);
            } else {
                throw new UnsupportedOperationException("Currently only string attributes are allowed");
            }
        }
    } finally {
        wfs.dispose();
    }
    return domain;
}
Also used : Query(org.geotools.data.Query) HashMap(java.util.HashMap) SimpleFeatureSource(org.geotools.data.simple.SimpleFeatureSource) WFSDataStore(org.geotools.data.wfs.WFSDataStore) URL(java.net.URL) SimpleFeature(org.opengis.feature.simple.SimpleFeature) SimpleFeatureCollection(org.geotools.data.simple.SimpleFeatureCollection) WFSException(org.geotools.data.wfs.protocol.wfs.WFSException) SimpleFeatureIterator(org.geotools.data.simple.SimpleFeatureIterator) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet)

Example 3 with WFSDataStore

use of org.geotools.data.wfs.WFSDataStore in project coastal-hazards by USGS-CIDA.

the class FeatureCollectionExportTest method testWriteToShapefile.

/**
 * Test of writeToShapefile method, of class FeatureCollectionExport.
 * ignoring this so it doesn't hit the server too much, mock this out for real test
 */
@Test
@Ignore
public void testWriteToShapefile() throws Exception {
    WFSDataStoreFactory datastore = new WFSDataStoreFactory();
    Map params = new HashMap<>();
    params.put(WFSDataStoreFactory.URL.key, new URL("http://coastalmap.marine.usgs.gov/cmgp/National/cvi_WFS/MapServer/WFSServer?service=WFS&request=GetCapabilities&version=1.0.0"));
    params.put(WFSDataStoreFactory.WFS_STRATEGY.key, "arcgis");
    params.put(WFSDataStoreFactory.TIMEOUT.key, 15000);
    params.put(WFSDataStoreFactory.TRY_GZIP.key, "true");
    WFSDataStore wfs = datastore.createDataStore(params);
    String[] typeNames = wfs.getTypeNames();
    SimpleFeatureSource featureSource = wfs.getFeatureSource(typeNames[2]);
    FeatureCollectionExport featureCollectionExport = new FeatureCollectionExport(featureSource.getFeatures(), new File("/tmp/shpfile"), "test3");
    featureCollectionExport.addAttribute("CVIRISK");
    featureCollectionExport.writeToShapefile();
}
Also used : HashMap(java.util.HashMap) SimpleFeatureSource(org.geotools.data.simple.SimpleFeatureSource) WFSDataStore(org.geotools.data.wfs.WFSDataStore) WFSDataStoreFactory(org.geotools.data.wfs.WFSDataStoreFactory) HashMap(java.util.HashMap) Map(java.util.Map) File(java.io.File) URL(java.net.URL) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 4 with WFSDataStore

use of org.geotools.data.wfs.WFSDataStore in project coastal-hazards by USGS-CIDA.

the class WFSIntrospector method createDs.

private static WFSDataStore createDs(WFSService service) throws IOException {
    WFSDataStoreFactory datastore = new WFSDataStoreFactory();
    WFSDataStore wfs;
    URL getCapsUrl = WFSDataStoreFactory.createGetCapabilitiesRequest(new URL(service.getEndpoint()), Version.v1_1_0);
    Map params = new HashMap<>();
    params.put(WFSDataStoreFactory.URL.key, getCapsUrl);
    params.put(WFSDataStoreFactory.TIMEOUT.key, 5000);
    wfs = datastore.createDataStore(params);
    return wfs;
}
Also used : HashMap(java.util.HashMap) WFSDataStore(org.geotools.data.wfs.WFSDataStore) WFSDataStoreFactory(org.geotools.data.wfs.WFSDataStoreFactory) HashMap(java.util.HashMap) Map(java.util.Map) URL(java.net.URL)

Example 5 with WFSDataStore

use of org.geotools.data.wfs.WFSDataStore in project polymap4-core by Polymap4.

the class WfsServiceInfo method of.

public static WfsServiceInfo of(IMetadata metadata, Map<String, String> params) throws ServiceException, MalformedURLException, IOException {
    String url = params.get(IMetadataResourceResolver.CONNECTION_PARAM_URL);
    // URL url = (URL)params.get( WFSDataStoreFactory.URL.key );
    // url = WFSDataStoreFactory.createGetCapabilitiesRequest( url );
    Map<String, Serializable> connParams = new HashMap();
    connParams.put(WFSDataStoreFactory.URL.key, url);
    connParams.put(WFSDataStoreFactory.TIMEOUT.key, 10000);
    WFSDataStoreFactory dsf = new WFSDataStoreFactory();
    WFSDataStore ds = dsf.createDataStore(connParams);
    return new WfsServiceInfo(metadata, ds);
}
Also used : Serializable(java.io.Serializable) HashMap(java.util.HashMap) WFSDataStore(org.geotools.data.wfs.WFSDataStore) WFSDataStoreFactory(org.geotools.data.wfs.WFSDataStoreFactory)

Aggregations

WFSDataStore (org.geotools.data.wfs.WFSDataStore)9 HashMap (java.util.HashMap)7 WFSDataStoreFactory (org.geotools.data.wfs.WFSDataStoreFactory)5 URL (java.net.URL)4 Map (java.util.Map)4 Query (org.geotools.data.Query)3 SimpleFeatureSource (org.geotools.data.simple.SimpleFeatureSource)3 SimpleFeatureIterator (org.geotools.data.simple.SimpleFeatureIterator)2 Ignore (org.junit.Ignore)2 Test (org.junit.Test)2 SimpleFeature (org.opengis.feature.simple.SimpleFeature)2 SimpleFeatureType (org.opengis.feature.simple.SimpleFeatureType)2 AttributeDescriptor (org.opengis.feature.type.AttributeDescriptor)2 Bbox (gov.usgs.cida.coastalhazards.model.Bbox)1 File (java.io.File)1 Serializable (java.io.Serializable)1 HashSet (java.util.HashSet)1 LinkedList (java.util.LinkedList)1 DefaultTransaction (org.geotools.data.DefaultTransaction)1 FileDataStoreFactorySpi (org.geotools.data.FileDataStoreFactorySpi)1