JDataStoreWizard

发布时间 2024-01-12 15:16:51作者: 2086nmj

Connect to DataStore:
在快速入门中,我们使用FileDataStoreFinder连接到一个特定的文件。这一次,我们将使用更通用的DataStoreFinder,它接受连接参数的映射。
注意,相同的代码可以用于连接到DataStoreFactorySpi(服务提供程序接口)参数指定的完全不同类型的数据存储。文件菜单操作使用ShapefileDataStoreFactory或PostgisNGDataStoreFactory的实例调用此方法。
JDataStoreWizard显示一个对话框,其中包含适合于shapefile或PostGIS数据库的输入字段。它需要比JFileDataStoreChooser多几行代码,JFileDataStoreChooser在快速入门中用于提示用户输入shapefile,但允许更大的控制。
Query:
Filter类似于SQL语句的where子句;定义被筛选出的每个要素需要满足的条件。
以下是我们显示所选功能的策略:
获取用户选择的特性类型名称,并从数据存储中检索相应的FeatureSource。
获取在文本字段中输入的查询条件,并使用CQL类创建一个Filter对象。
将Filter传递给getFeatures方法,该方法以featurecollection的形式返回与查询匹配的要素。使用featureSource.getFeatures(filter)获取要素数据。
为对话框的JTable创建一个FeatureCollectionTableModel。这个GeoTools类接受一个featurecollection,并检索每个特征的特征属性名称和数据。

通过使用Query数据结构,您可以更好地控制请求,允许您只选择所需的属性;控制返回的特征数量;并要求一些具体的处理步骤,如重新投影。

Filter:
例子:CqlFilter
要从FeatureSource请求信息,我们需要描述(或选择)我们想要返回的信息。我们为此使用的数据结构称为过滤器。
可以使用CQL语句创建Filter;
也可以使用CQL+WKT文本创建Filter;
include,查询所有要素
CNTRY_NAME = 'France',查询名称等于France的要素
POP_RANK >= 5
CNTRY_NAME = 'Australia' AND POP_RANK > 5
BBOX(the_geom, 110, -45, 155, -10),空间查询,这是一个边界框查询,将选择110 - 155°W, 10 - 45°S(澳大利亚周围的松散框)范围内的所有要素
注意:Shapefile的几何属性名总是称为the_geom,对于其他数据存储,我们需要查找几何属性的名称。
CQL语句创建Filter:

 

参考:https://www.msipo.com/article-423625.html