我来这里是因为我正在搜索(如提到的 Headers )从geotools(通过geoserver)进行查询以从solr索引获取特征 .
更确切地说:
我在geoserver用户手册上看到我可以在http中对solr进行查询:
http://localhost:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature
&typeName=mySolrLayer
&format="xxx"
&viewparams=q:"mySolrQuery"
此URL的重要部分是我想直接从geotools使用的viewparams .
我已经测试过这个案例(这是我代码的一部分):
url = new URL(
"http://localhost:8080/geoserver/wfs?request=GetCapabilities&VERSION=1.1.0";
);
Map<String, String> param = new HashMap();
params.put(WFSDataStoreFactory.URL.key, url);
param.put("viewparams","q:myquery");
Hints hints = new Hints();
hints.put(Hints.VIRTUAL_TABLE_PARAMETERS, viewParams);
query.setHints(hints);
...
featureSource.getFeatures(query);
但是在这里,它似乎不起作用,发送到geoserver的url是没有viewparams参数的正常“GET FEATURE”请求 .
我用geotools-12.2尝试了这个; geotools-13.2和geotools-15-SNAPSHOT但我没有成功通过查询,geoserver发送给我数据库中的所有功能,并没有将“viewparams”作为参数 .
我需要这样做,因为实际上查询来自另一个程序,我很容易将这个查询传达给项目的另一部分......
如果有人可以帮助我?
1 回答
由于getFeature请求是由getCapabilities文档提供的URL构造的,因此没有_W1Datastore implementations . 这与standard要求但是可能值得制作功能增强请求以允许客户端覆盖此字符串(例如,如QGIS所做的那样),这将允许您在基本URL中指定附加参数,然后将其传递给服务器如你所愿 .
不幸的是,目前WFS模块位于
Unsupported
land,所以除非你有资源自己处理这个问题并且can provide a PR实现它,否则很有可能实现它 .