org.geotools.data.Query.getPropertyNames()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(214)

本文整理了Java中org.geotools.data.Query.getPropertyNames方法的一些代码示例,展示了Query.getPropertyNames的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getPropertyNames方法的具体详情如下:
包路径:org.geotools.data.Query
类名称:Query
方法名:getPropertyNames

Query.getPropertyNames介绍

[英]Get the names of the properties that this Query will retrieve as part of the returned org.geotools.feature.FeatureCollection.
[中]获取此查询将作为返回组织的一部分检索的属性的名称。地理工具。特色特色系列。

代码示例

代码示例来源:origin: geoserver/geoserver

  1. String[] queriedAtts = query.getPropertyNames();
  2. int queriedAttCount = queriedAtts.length;
  3. List allowedAtts = new LinkedList();

代码示例来源:origin: geoserver/geoserver

  1. ((SimpleFeatureStore) storeDelegate).modifyFeatures(names, values, filter);
  2. } else if (writeQuery.getFilter() == Filter.EXCLUDE
  3. || writeQuery.getPropertyNames() == Query.NO_NAMES) {
  4. throw unsupportedOperation();
  5. Query mixed = mixQueries(local, writeQuery);
  6. if (writeQuery.getPropertyNames() == Query.ALL_NAMES) {
  7. new HashSet<String>(Arrays.asList(writeQuery.getPropertyNames()));

代码示例来源:origin: geoserver/geoserver

  1. return;
  2. } else if (writeQuery.getFilter() == Filter.EXCLUDE
  3. || writeQuery.getPropertyNames() == Query.NO_NAMES) {
  4. throw unsupportedOperation();
  5. Query mixed = mixQueries(local, writeQuery);
  6. if (writeQuery.getPropertyNames() == Query.ALL_NAMES) {
  7. new HashSet<String>(Arrays.asList(writeQuery.getPropertyNames()));

代码示例来源:origin: geoserver/geoserver

  1. /**
  2. * * Takes into account eventual joins
  3. *
  4. * @param query
  5. * @return
  6. */
  7. public SimpleFeatureType getFeatureType(Query query) {
  8. SimpleFeatureType result;
  9. if (query.getPropertyNames() != Query.ALL_NAMES) {
  10. result = SimpleFeatureTypeBuilder.retype(featureType, query.getPropertyNames());
  11. } else {
  12. result = featureType;
  13. }
  14. // add back the joined features in case of join
  15. if (!query.getJoins().isEmpty()) {
  16. SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
  17. tb.init(result);
  18. for (Join join : query.getJoins()) {
  19. String joinedFeatureAttribute = join.getAlias();
  20. if (joinedFeatureAttribute == null) {
  21. joinedFeatureAttribute = join.getTypeName();
  22. }
  23. tb.add(joinedFeatureAttribute, SimpleFeature.class);
  24. }
  25. result = tb.buildFeatureType();
  26. }
  27. return result;
  28. }

代码示例来源:origin: geoserver/geoserver

  1. return;
  2. } else if (writeQuery.getFilter() == Filter.EXCLUDE
  3. || writeQuery.getPropertyNames() == Query.NO_NAMES) {
  4. throw unsupportedOperation();
  5. Query mixed = mixQueries(local, writeQuery);
  6. if (writeQuery.getPropertyNames() == Query.ALL_NAMES) {
  7. new HashSet<String>(Arrays.asList(writeQuery.getPropertyNames()));

代码示例来源:origin: geoserver/geoserver

  1. if (query.getPropertyNames() == Query.ALL_NAMES) {
  2. return ft;
  3. SimpleFeatureType sft = (SimpleFeatureType) ft;
  4. Set<String> properties =
  5. new HashSet<String>(Arrays.asList(query.getPropertyNames()));
  6. SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
  7. tb.init(sft);

代码示例来源:origin: geoserver/geoserver

  1. public void removeFeatures(Filter filter) throws IOException {
  2. // are we limiting anything?
  3. Query writeQuery = getWriteQuery(policy);
  4. if (writeQuery == Query.ALL) {
  5. storeDelegate.removeFeatures(filter);
  6. } else if (writeQuery.getFilter() == Filter.EXCLUDE
  7. || writeQuery.getPropertyNames() == Query.NO_NAMES) {
  8. throw unsupportedOperation();
  9. }
  10. // get the mixed filter
  11. final Query local = new Query(null, filter);
  12. Query mixed = mixQueries(local, writeQuery);
  13. storeDelegate.removeFeatures(mixed.getFilter());
  14. }

代码示例来源:origin: geoserver/geoserver

  1. || writeQuery.getPropertyNames() == Query.NO_NAMES) {
  2. throw unsupportedOperation();
  3. } else if (writeQuery == Query.ALL) {
  4. if (writeQuery.getPropertyNames() == Query.ALL_NAMES) {
  5. return storeDelegate.addFeatures(collection);
  6. } else {
  7. List<String> writableAttributes = Arrays.asList(writeQuery.getPropertyNames());
  8. CheckAttributesFeatureCollection checker =
  9. new CheckAttributesFeatureCollection(

代码示例来源:origin: geoserver/geoserver

  1. SimpleFeatureType target =
  2. SimpleFeatureTypeBuilder.retype(
  3. sfc.getSchema(), mixed.getPropertyNames());
  4. ReTypingFeatureCollection retyped = new ReTypingFeatureCollection(sfc, target);
  5. return (FeatureCollection) SecuredObjects.secure(retyped, policy);

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Creates a sub-schema with only the selected attributes
  3. *
  4. * @param schema
  5. * @param query
  6. * @return
  7. */
  8. static SimpleFeatureType retypeSchema(SimpleFeatureType schema, Query query) {
  9. if (query.getPropertyNames() == Query.ALL_NAMES) {
  10. return schema;
  11. } else {
  12. return SimpleFeatureTypeBuilder.retype(schema, query.getPropertyNames());
  13. }
  14. }

代码示例来源:origin: geotools/geotools

  1. SimpleFeatureType getResultSchema(Query q) {
  2. if (q.getPropertyNames() == null) {
  3. return getSchema();
  4. } else {
  5. return SimpleFeatureTypeBuilder.retype(getSchema(), q.getPropertyNames());
  6. }
  7. }

代码示例来源:origin: geotools/geotools

  1. boolean isSubQuery(Query query) {
  2. // no cached data?
  3. if (cachedQuery == null) return false;
  4. // do we miss some properties?
  5. String[] cachedPropNames = cachedQuery.getPropertyNames();
  6. String[] propNames = query.getPropertyNames();
  7. if (cachedPropNames != Query.ALL_NAMES
  8. && (propNames == Query.ALL_NAMES
  9. || !Arrays.asList(cachedPropNames).containsAll(Arrays.asList(propNames))))
  10. return false;
  11. Filter[] filters = splitFilters(query);
  12. Filter[] cachedFilters = splitFilters(cachedQuery);
  13. if (!filters[0].equals(cachedFilters[0])) return false;
  14. Envelope envelope = getEnvelope(filters[1]);
  15. return cachedBounds.contains(envelope);
  16. }

代码示例来源:origin: geotools/geotools

  1. @Override
  2. public SimpleFeatureCollection getGranules(Query q) throws IOException {
  3. Query renamed = renameQuery(q);
  4. SimpleFeatureCollection granules = delegate.getGranules(renamed);
  5. SimpleFeatureType targetSchema = this.schema;
  6. if (q.getPropertyNames() != Query.ALL_NAMES) {
  7. targetSchema = SimpleFeatureTypeBuilder.retype(schema, q.getPropertyNames());
  8. }
  9. return new ReTypingFeatureCollection(granules, targetSchema);
  10. }

代码示例来源:origin: geotools/geotools

  1. private SimpleFeatureCollection getFeatureCollection(Query query, Envelope bounds)
  2. throws IOException {
  3. try {
  4. SimpleFeatureType base = wrapped.getSchema();
  5. SimpleFeatureType alternate = base;
  6. if (query.getPropertyNames() != Query.ALL_NAMES) {
  7. alternate = SimpleFeatureTypeBuilder.retype(base, query.getPropertyNames());
  8. if (alternate.equals(base)) alternate = base;
  9. }
  10. return new CachingFeatureCollection(bounds, base, alternate, query);
  11. } catch (Exception e) {
  12. throw new DataSourceException(
  13. "Error occurred extracting features from the spatial index", e);
  14. }
  15. }

代码示例来源:origin: geotools/geotools

  1. SimpleFeatureType getReadSchema(Query q) {
  2. if (q.getPropertyNames() == Query.ALL_NAMES) {
  3. return getSchema();
  4. }
  5. // Step 1: start with requested property names
  6. LinkedHashSet<String> attributes = new LinkedHashSet<String>();
  7. attributes.addAll(Arrays.asList(q.getPropertyNames()));
  8. Filter filter = q.getFilter();
  9. if (filter != null && !Filter.INCLUDE.equals(filter)) {
  10. // Step 2: Add query attributes (if needed)
  11. // Step 3: Fill empty XPath with appropriate property names
  12. FilterAttributeExtractor fat = new AbsoluteAttributeExtractor(getSchema());
  13. filter.accept(fat, null);
  14. attributes.addAll(fat.getAttributeNameSet());
  15. }
  16. return SimpleFeatureTypeBuilder.retype(getSchema(), new ArrayList<String>(attributes));
  17. }

代码示例来源:origin: geotools/geotools

  1. private SimpleFeatureSource getFeatureSourceFor(Query query) throws IOException {
  2. Double distance = getRequestedDistance(query);
  3. String geomPropertyName = info.getGeomPropertyName(); // the geometry for which we have
  4. // generalizations
  5. String[] queryProperyNames = query.getPropertyNames();
  6. if (queryProperyNames != null) {
  7. for (String prop : queryProperyNames) { // check if geom property name was specified in
  8. // the query
  9. if (prop.equals(geomPropertyName)) return getFeatureSourceFor(distance);
  10. }
  11. } else { // we have Query.ALL
  12. return getFeatureSourceFor(distance);
  13. }
  14. // no geometry in the query for which generalizations are present.
  15. return getBaseFeatureSource();
  16. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Hashcode based on all parameters other than the handle.
  3. *
  4. * @return hascode for this Query
  5. */
  6. @Override
  7. public int hashCode() {
  8. String[] n = getPropertyNames();
  9. return ((n == null) ? (-1) : ((n.length == 0) ? 0 : (n.length | n[0].hashCode())))
  10. | getMaxFeatures()
  11. | ((getFilter() == null) ? 0 : getFilter().hashCode())
  12. | ((getTypeName() == null) ? 0 : getTypeName().hashCode())
  13. | ((getVersion() == null) ? 0 : getVersion().hashCode())
  14. | ((getCoordinateSystem() == null) ? 0 : getCoordinateSystem().hashCode())
  15. | ((getCoordinateSystemReproject() == null)
  16. ? 0
  17. : getCoordinateSystemReproject().hashCode())
  18. | getStartIndex();
  19. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Configure expected
  3. *
  4. * @param origional
  5. * @param query
  6. * @return
  7. */
  8. public static SimpleFeatureType retype(SimpleFeatureType origional, Query query) {
  9. CoordinateReferenceSystem crs = null;
  10. if (query.getCoordinateSystem() != null) {
  11. crs = query.getCoordinateSystem();
  12. }
  13. if (query.getCoordinateSystemReproject() != null) {
  14. crs = query.getCoordinateSystemReproject();
  15. }
  16. return retype(origional, query.getPropertyNames(), crs);
  17. }

代码示例来源:origin: geotools/geotools

  1. public SimpleFeatureType getQueryType(Query query) throws IOException {
  2. final String typeName = query.getTypeName();
  3. final String propertyNames[] = query.getPropertyNames();
  4. final FeatureTypeInfo typeInfo = typeInfoCache.getFeatureTypeInfo(typeName);
  5. final SimpleFeatureType completeSchema = typeInfo.getFeatureType();
  6. SimpleFeatureType featureType = completeSchema;
  7. if (!query.retrieveAllProperties() || query.getCoordinateSystem() != null) {
  8. try {
  9. featureType =
  10. DataUtilities.createSubType(
  11. featureType, propertyNames, query.getCoordinateSystem());
  12. } catch (SchemaException e) {
  13. LOGGER.log(Level.FINEST, e.getMessage(), e);
  14. throw new DataSourceException("Could not create Feature Type for query", e);
  15. }
  16. }
  17. return featureType;
  18. }

代码示例来源:origin: geotools/geotools

  1. /** Get features based on the query specified. */
  2. @Override
  3. public FeatureCollection<FeatureType, Feature> getFeatures(Query query) throws IOException {
  4. GetFeatureRequest request = client.createGetFeatureRequest();
  5. FeatureType schema = dataAccess.getSchema(typeName);
  6. QName name = dataAccess.getRemoteTypeName(typeName);
  7. request.setTypeName(new QName(query.getTypeName()));
  8. request.setFullType(schema);
  9. request.setFilter(query.getFilter());
  10. request.setPropertyNames(query.getPropertyNames());
  11. request.setSortBy(query.getSortBy());
  12. String srsName = null;
  13. request.setSrsName(srsName);
  14. return new WFSContentComplexFeatureCollection(request, schema, name);
  15. }

相关文章