1.这段时间本人也是尝试了很多的版本,目前在3.3版本使用下比较稳定可靠。

2.如果其他版本遇到这个问题,可以在C:\Users\XXX\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\BlenderGIS-master\core\lib\imageio\resources目录下新建一个文件夹FreeImage,里面放一个FreeImage-3.15.1-win64.dll文件即可。(根据电脑的配置来的)

3.或者在Blender中的Python脚本运行以下代码进行实现。

import bpy
import subprocess
import sys
import os

def install_packages():
    """安装BlenderGIS所需的图像处理库"""
    # 获取Blender的Python解释器
    python_exe = sys.executable
    
    # 确保pip可用
    subprocess.call([python_exe, "-m", "ensurepip"])
    
    # 升级pip
    subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"])
    
    # 安装必要库
    packages = ["pillow", "imageio", "numpy"]
    for package in packages:
        try:
            subprocess.call([python_exe, "-m", "pip", "install", package])
            print(f"成功安装: {package}")
        except Exception as e:
            print(f"安装 {package} 失败: {str(e)}")
    
    # 验证安装
    try:
        from PIL import Image
        import imageio
        import numpy as np
        print("所有库已成功安装!")
        return True
    except ImportError as e:
        print(f"验证失败: {str(e)}")
        return False

class GIS_OT_InstallPackages(bpy.types.Operator):
    bl_idname = "gis.install_packages"
    bl_label = "安装GIS依赖库"
    bl_description = "安装BlenderGIS所需的图像处理库"
    
    def execute(self, context):
        if install_packages():
            self.report({'INFO'}, "库安装成功! 请重启Blender")
        else:
            self.report({'ERROR'}, "安装失败,请查看控制台输出")
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(GIS_OT_InstallPackages.bl_idname)

def register():
    bpy.utils.register_class(GIS_OT_InstallPackages)
    bpy.types.VIEW3D_MT_editor_menus.append(menu_func)

def unregister():
    bpy.utils.unregister_class(GIS_OT_InstallPackages)
    bpy.types.VIEW3D_MT_editor_menus.remove(menu_func)

if __name__ == "__main__":
    register()

4.在需要使用天地图时也可以在C:\Users\XXXAppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\BlenderGIS-master\core\basemaps这个目录下的servicesDefs.py文件中加上一段代码。如下图所示:

具体代码如下:XXXXX即为在天地图官网申请的密钥

  "TIANDITU" : {
		"name" : '天地图',
                                "description" : '天地图',
                                "service": 'TMS',
                                "grid": 'WM',
                                "quadTree": False,
                                "layers" : {
                                # "SAT" : {"urlKey" : 's', "name" : 'Satellite', "description" : '', "format" : 'jpeg', "zmin" : 0, "zmax" : 22},
                                  "IMG" : {"urlKey" : 'vec_w', "name" : '矢量底图', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18},
                                  "CVA" : {"urlKey" : 'cva_w', "name" : '矢量注记', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18},
                                  "IMG" : {"urlKey" : 'img_w', "name" : '影像底图', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18},
                                  "TER" : {"urlKey" : 'ter_w', "name" : '地形晕渲', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18},
                                  "CTA" : {"urlKey" : 'cta_w', "name" : '地形注记', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18},
                                  "IBO" : {"urlKey" : 'ibo_w', "name" : '全球境界', "description" : '', "format" : 'jpeg', "zmin" : 1, "zmax" : 18}
		       },
               "urlTemplate": "http://t0.tianditu.gov.cn/{LAY}/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={Z}&TILEROW={Y}&TILECOL={X}&tk=XXXXXXXXXXXXXXXXXXXXXXXXXX",
      "referer": ""

5.具体效果如下:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐