@SneakyThrows
public static void main(String[] args) {
try {
HashMap<String, Object> params = new HashMap<>(8);
params.put("dbtype", "sqlserver");
params.put("host", "ip");
params.put("port", 1433);
params.put("database", "geo");
params.put("user", "sa");
params.put("passwd", "pwd");
DataStore dataStore = DataStoreFinder.getDataStore(params);
SimpleFeatureSource source = dataStore.getFeatureSource("BGPOINT");
SimpleFeatureType schema = source.getSchema();
dataStore.getFeatureWriter(schema.getTypeName(),new DefaultTransaction());
//name 一般为the_geom,表示记录shp的空间信息
String name = schema.getGeometryDescriptor().getLocalName();
Filter filter = CQL.toFilter("INTERSECTS("+name+",LINESTRING (13362219.971500002 3362953.5067000017, 13362227.4923 3362951.6404))");
//关键是下面的代码
Query query = new Query(schema.getTypeName(), filter, name);
SimpleFeatureCollection features = source.getFeatures(query);
SimpleFeatureIterator simpleFeatureIterator = features.features();
while (simpleFeatureIterator.hasNext()){
SimpleFeature simpleFeature = simpleFeatureIterator.next();
Collection<Property> properties= simpleFeature.getProperties();
Iterator<Property> iterator= properties.iterator();
System.out.println(simpleFeature.getID());
while (iterator.hasNext()){
Property next = iterator.next();
System.out.println(next.getValue());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
java geoTools几何关系查询
最新推荐文章于 2024-04-16 13:55:59 发布