Feature spatial query in shapefile through GeoTools

本文介绍了一种在GeoTools中为地理特性(feature)建立空间索引的方法,使用MemorySpatialIndex来加速空间查询过程。此外还提到了RTEE和QUADTREE作为另一种建立空间索引的方式。
基本主意是为features建立一个空间索引,然后利用该索引快速查找到该feature。
很奇怪的直接通过geotools的api,或者在google上搜索,竟然找不到直接的方法。
偶然的机会发现了一个简单的方法。基本步骤如下:(本文例子使用的是Geotools2.4.4)

dataStore = new ShapefileDataStore(url);
String typeName = dataStore.getTypeNames ()[0];       
FeatureSource featureSource = dataStore.getFeatureSource( typeName );
FeatureCollection features = featureSource.getFeatures();
MemorySpatialIndex memSpatialIdx = new MemorySpatialIndex(features);

这样我们就对已经load的features建立了spatial index,当我们要进行空间查询时,以Envelope为参数
用下述方法即可。
//env --Envelope env
List<Feature> features = memSpatialIdx .findFeatures(env);

当然另外一种方式实现spatial index是使用Geotools中提供的RTEE或者QUADTREE,自己建立索引,然后利用
其api执行空间查询,实现起来也很简单,此处就不赘述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值