GeoServer 2.27中ImageMosaic添加时间范围额外域属性问题求助
问题解决思路及修正方案
核心问题分析
报错Unable to add this domain:timerange-timetimera以及timerange字段为空的原因是:你的indexer.properties未在Schema中定义timerange的字段类型,GeoServer无法识别并创建该时间范围属性,导致索引构建失败,最终无法生成可用图层。
修正后的indexer.properties配置
Cog=true useExistingSchema=false # 新增timerange字段,类型为时间范围专用的org.geotools.util.Range<java.util.Date> Schema=*the_geom:Polygon,location:String,time:java.util.Date,endtime:java.util.Date,reftime:java.util.Date,timerange:org.geotools.util.Range<java.util.Date> # 保留原有时间提取规则,timerange由time和endtime自动生成,无需额外提取器 PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time),TimestampFileNameExtractorSPI[timeregexend](endtime),FSDateExtractorSPI(reftime) # 将TimeAttribute设置为timerange,作为图层的核心时间范围属性 TimeAttribute=timerange # 移除timerange的重复定义,保留其他附加属性 AdditionalDomainAttributes=endtime,reftime AbsolutePath=true Caching=false CanBeEmpty=true ExpandToRGB=false Recursive=false WrapStore=true Name=test_mosaic TypeName=test_mosaic
操作步骤
- 删除已创建的
test_mosaic覆盖存储及对应的索引文件(通常位于GeoServer数据目录下的coveragestores或mosaics文件夹) - 使用上述修正后的配置重新创建覆盖存储
- 添加COG颗粒文件,此时timerange会基于提取到的
time和endtime自动生成YYYY-01-01T00:00:00Z/YYYY-12-31T23:59:59Z格式的年度时间范围 - 尝试创建图层,即可正常完成
额外注意事项
- 确保
timeregex和timeregexend的正则表达式能正确从文件名提取年份,保证生成的time和endtime符合预期格式 - 若仍有问题,查看GeoServer日志获取更详细的错误信息,排查时间提取逻辑是否存在偏差
内容的提问来源于stack exchange,提问作者SIBeckers
相关产品推荐
相关产品推荐

