我将ckanext-spatial安装到在virtualbox中的debian8虚拟机中运行的工作ckan实例中。
我使用geoJson信息创建一些示例数据并测试空间查询,一切正常。
第二天,我初始化debian虚拟机并尝试空间查询,但它们没有返回任何结果。分析问题我发现solr数据不包括空间参数,如bbox_area,maxx,maxy,minx和miny。在solr日志中,我可以看到系统正在使用的查询,它们包括如下的空间参数:
...max(0, sub(min(32.9694995329, maxy)))...
似乎问题在于solr服务中的数据不包含空间信息。
我尝试使用ckan中的geojson信息创建新数据集,但同样会导致solr系统中没有空间信息的数据。我也重新安装了postGIS,但问题仍然存在。
最后我运行了paster命令:
paster --plugin=ckan search-index rebuild --config=/etc/ckan/default/development.ini
为了重新索引solr数据,我收到以下错误:
错误[ckanext.spatial.plugin] solr后端仅支持bbox, 忽略几何{{type':“Polygon”,“coordinates”:[[[-17.3035, 32.8807],[ - 16.6635,32.8807],[ - 16.6635,32.6075],[ - 17.3035,32.6075]]}}
如何解决此问题?为什么向solr系统发送空间信息的过程不起作用?我的空间数据存在一些格式问题?
答案 0 :(得分:2)
问题在于我错误地定义了geojson信息。当需要5分时,我只为Polygon定义了4个点。
错:
{ "type": "Polygon",
"coordinates": [ [ [ -17.3035, 32.8807 ],
[ -16.6635, 32.8807 ],
[ -16.6635, 32.6075 ],
[ -17.3035, 32.6075 ]
] ]
}
确定:
{ "type": "Polygon",
"coordinates": [ [ [ -17.3035, 32.8807 ],
[ -16.6635, 32.8807 ],
[ -16.6635, 32.6075 ],
[ -17.3035, 32.6075 ],
[ -17.3035, 32.8807 ]
] ]
}
我只是不明白,如果我总是用4分来定义多边形,这怎么可能有用呢!