MS RFC 125:支持映射文件中的连接选项¶
- 日期
2019-09-30
- 作者
甚至鲁奥
- 联系
- 状态
采用
- 最后更新
2019-10-10
- 版本
MapServer 8.0版
概述¶
由于GDAL 2.0、GDAL/OGR栅格和矢量驱动程序可以接受开放选项,从而控制驱动程序te行为的某些方面。这些选项是特定于驱动程序的,可以使用 GDALOpenEx() C API。目前,MapServer没有直接的方法来指定这些选项,人们不得不退回到工作区,例如使用GDAL或OGR.vrt文件,其中嵌入了打开选项。
建议的解决方案¶
在MapFile语法中,CONNECTIONOPTIONS关键字作为LAYER对象的子项添加,并定义必须以END结尾的新块。它可以接受一系列“键”“值”打开选项。此语法与元数据块类似。
例子¶
LAYER
NAME "test"
CONNECTIONTYPE OGR
CONNECTION "./data/nested_attrs.geojson"
CONNECTIONOPTIONS
"FLATTEN_NESTED_ATTRIBUTES" "YES"
END
[...]
END
实施细节¶
将修改以下文件:
mapfile.c:加载和序列化连接选项
mapfile.h:定义CONNECTIONOPTIONS的值
mapgdal.c:添加msGetStringListFromHashTable()以转换GDAL所需的char**列表中的哈希表
maplexer.l:修改为识别连接选项
mapogr.cpp:打开矢量数据集时使用CONNECTIONOPTIONS
mapraster.c:打开栅格数据集时使用连接选项
maprasterquery.c:打开栅格数据集时使用连接选项
mapserver.h:layerObj结构扩展为包含hashTableObj连接选项
mapuvraster.c:打开栅格数据集时使用连接选项
mapwcs.c:打开栅格数据集时使用连接选项
mapwcs20.c:打开栅格数据集时使用连接选项
将添加以下文件:
msautotest/gdal/connectionoptions.map:栅格的测试连接选项
msautotest/wxs/ogr_connectionoptions.map:vetor的测试连接选项
msautotest/wxs/expected/ogr_connectionoptions.xml:测试数据
msautotest/wxs/data/nested_attrs.geojson:预期结果
局限性¶
当前的实现仅限于GDAL和OGR驱动程序。但其他数据源后端可以使用CONNECTIONOPTIONS。
向后兼容性问题¶
没有。
安全影响¶
没有。
性能影响¶
没有。
文件需求¶
LAYER对象的documentation页将扩展到document CONNECTIONOPTIONS。
票证ID和参考号¶
投票历史¶
+来自PSC的成员包括鲁奥、汤姆·克拉利迪斯、米克尔·史密斯、塞思·吉尔文、丹尼尔·莫里塞特、史蒂夫·莱姆和朱卡·拉科宁。
信用¶
感谢法国国防部的资助。