写在最前面
关于安装成功后,会加载不出来地图,应该是不支持了,文章留着,大家可以体验下安装过程即可。如果有好的插件和方法,欢迎大家留言交流。
GIS插件安装
1. 插件下载地址:
2. 下载后不需要解压,打开Blender,打开偏好设置 Cmd+,
,插件——安装——找到刚才下载的安装包.zip,勾选以启用它。
3. 重新打开Blender,就可以在左上角看到GIS的字样。点击选择
Web geodata_basemap,可能会出现No ImageIO报错。
4.解决No ImageIO报错问题
第一步:
在GitHub里面找到一个freeimage文件,打开找到我们电脑系统对应的版本下载即可。
下载地址如下:
https://github.com/imageio/imageio-binaries/tree/master/freeimage
根据电脑系统下载对应的文件,我们以mac电脑为例,下载以-osx
结尾的文件,点击进去下载。
第二步:
找到刚才安装的BlenderGIS-master插件所在的路径,也就是BlenderGIS-master这个文件夹
下面以Mac电脑为例
最近好多小伙伴反馈找不到,今天用最新版本3.3.1今天测试了一下,确实找不到了。
之前的方法:
- 找到应用程序Blender——右键,安装包——依次点击下方的路径。到addons后就找不到BlenderGIS-master文件夹;
- 通过按快捷键
cmd+shift+.
就会看到mac系统隐藏的文件夹和文件,这时BlenderGIS-master文件夹就会看到了。
/Contents/Resources/3.1/scripts/addons/BlenderGIS-master/core/lib/imageio/resources
最新解决方法
打开访达FInder,通过快捷键Cmd+Shift+G,输入下方路径
注意路径中的3.3
是Blender的版本号,需要替换为你当前的版本号。
/Users/liang/Library/Application Support/Blender/3.3/scripts/addons/BlenderGIS-master/core/lib/imageio/resources
第三步:
创建一个freeimage的文件夹,把下载的文件放进去,就可以解决了。
该方法是个人认为比较简单的方式,网上还有用
Python命令的方式
和下载安装GDAL和numpy通过配置环境变量的方式
感兴趣的可以去了解一下。
GIS插件的使用:山脉
- 获取二维地图,然后我们可以从源中选择天地图或者bing必应,谷歌因为需要翻墙才能用,不是很推荐。
2.blender中间的整个视图区域就是加载地图的视图大小。默认进去会是一片灰色,但是实际是有的,只是加载的数据太多,没有显示出来。
按G键进入搜索定位,输入地名和缩放等级。
注意:
- 缩放等级≥17的话地图更能看到高低起伏变化,输入是0则表示平面地图。
- 定位最好是有明显高低落差的,比如建筑,山脉,这样后面再获取高度的时候层显的3d效果会更好。
- 根据需要调整位置,按鼠标左键可以拖动地图坐标位置,按鼠标中间滚轮可以缩放大小,然后按E键结束。
这时候就得到了一个贴有影像图的平面。
4.获取地图数据:点击GIS——Web geodata——Get elevation (SRTM)
- 点击右侧工具栏,调整缩放Scale Z轴上的值为2,相当于高度变为之前的2倍;
点击右下的材质,把图像锐度roughness调到最大,这样山脉更清晰,反射specular的值降低,这样就调整好了。
GIS插件的使用:城市建筑
同样的道理我们也可以加载一个城市地图,然后获取高度,给建筑添加渐变材质,描边等等,包括城市道路。
方式同上
-
获取一个城市的定位,取得平面地图;
然后可以点击GIS——Web geodata——Get OSM获取建筑、陆地、水域等数据。
OSM全拼是OpenStreetMap,是一个开放街区地图。
加载完地图,我们可以通过调整Z轴的值调整建筑的高度。
-
点击左下角,选择着色器编辑器,然后选中建筑的图层,添加一个蓝色渐变材质。
这里记得修改一下右侧的设置Blend Mode 为Alpha Blend。
-
复制一层建筑,添加一个发光描边
-
开启虚幻效果:右侧渲染属性——辉光——强度
-
调整摄像机:默认值太小,所以看到一片灰色,调整最大值和地图实际大小一样大,才能看到全貌。
-
可以添加一个灯光效果,最终效果如下
天地图配置
BlenderGIS安装成功后在basemap中默认是不带天地图选项的,需要手动配置后才可以正常使用天地图GIS底图服务。具体配置如下。
- 在Blender安装包文件中找到下方的路径
/Contents/Resources/3.1/scripts/addons/BlenderGIS-master/core/basemaps
-
打开servicesDefs.py文件,(需要安装有代码器,推荐VsCode)
找到sources的位置,把下方这串代码复制到文件中相应的位置,如下图红框的地方。
需要复制的代码:
"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=XXXXXXXXXXXXXXXX",
"referer": ""
},
需要注意的是:复制代码前需要修改tk为你自己在天地图官网上申请的浏览器端token。
不用担心,这很简单。
需要粘贴的位置
- 去天地图官网申请一个Key,
为了练习,大家也可以直接用我申请的用来专门测试,也可以按照接下来的步骤自己申请。
key: c987b2752e951f10029779e7d98a2e65
天地图官网链接:http://lbs.tianditu.gov.cn/server/MapService.html
点击创建新应用,根据我们需要的选择了浏览器端。
复制key, 粘贴到上一步代码中最后一行tk的位置就可以了。
- 配置好,重新打开Blender,点击GIS插件,选择Web geodata——basemap,在源下拉选择天地图,影像。