QGIS的docker管理
This commit is contained in:
@@ -39,12 +39,13 @@ class TemplateModifier:
|
||||
"""
|
||||
将 GPKG 文件路径对应的 <provider ...>postgres</provider> 改为 ogr。
|
||||
|
||||
策略:按 <maplayer> 块处理,若块内 datasource 是文件路径(盘符开头),
|
||||
策略:按 <maplayer> 块处理,若块内 datasource 是文件路径(盘符开头或 Linux 绝对路径),
|
||||
则该块内的 provider 改为 ogr。避免跨层误改。
|
||||
"""
|
||||
maplayer_re = re.compile(r'(<maplayer[^>]*>.*?</maplayer>)', re.DOTALL)
|
||||
provider_re = re.compile(r'(<provider[^>]*>)postgres(</provider>)')
|
||||
file_ds_re = re.compile(r'<datasource>([A-Za-z]:/[^<]+)</datasource>')
|
||||
# 匹配 Windows 盘符路径 (G:/...) 或 Linux 绝对路径 (/app/...)
|
||||
file_ds_re = re.compile(r'<datasource>(?:[A-Za-z]:/|/)[^<]*</datasource>')
|
||||
|
||||
def _fix_layer(m):
|
||||
layer_xml = m.group(1)
|
||||
@@ -60,8 +61,11 @@ class TemplateModifier:
|
||||
has_static = bool(self._static_map)
|
||||
|
||||
if not override and not has_static:
|
||||
logger.info(f"模板无需修改(无 override 且 static_map 为空),直接返回: {template_path}")
|
||||
return template_path
|
||||
|
||||
logger.info(f"模板修改: static_map有{len(self._static_map)}条, override={'有' if override else '无'}")
|
||||
|
||||
orig = override.get("original") if override else None
|
||||
actual = override.get("actual") if override else None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user