Google Earth Pro中通过NetworkLink加载S3 KMZ的3D模型无纹理问题
解决思路
1. 检查KMZ内部纹理路径
- 解压S3上的KMZ文件,查看COLLADA(.dae)文件里的纹理引用路径,必须是相对路径(比如
./textures/xxx.png),绝对路径或带本地盘符的路径会直接导致远程加载失败。 - 确认PNG文件确实在KMZ内的对应路径下,别漏文件也别拼错路径——S3是大小写敏感的,文件名大小写必须完全匹配。
2. 验证预签名链接的有效性
- 把预签名链接直接粘到浏览器里打开,确认能完整下载KMZ,解压后纹理文件能正常打开。
- 检查预签名链接的权限,得确保它能让Google Earth Pro读取KMZ里的所有文件,有些情况下签名可能只开放了主KMZ文件的访问权,内部纹理就加载不了。
3. 调试Google Earth Pro的缓存与加载逻辑
- 清掉Google Earth Pro的缓存:点
工具>选项>缓存>清除缓存,重启客户端再重新加载,避免旧缓存搞乱路径解析。 - 开日志功能排查:点
工具>选项>高级>启用日志文件,加载模型后去用户目录下的Google Earth文件夹找日志,搜纹理文件名,看有没有加载失败的报错信息。
4. 调整KMZ打包方式
- 重新用SketchUp导出COLLADA时,选
将纹理嵌入COLLADA文件(有这个选项的话),省得依赖外部纹理的路径。 - 手动重新打包KMZ:把所有文件(.dae、.png、主KML)放在同一根目录或对应相对路径下,用7-Zip这类工具打包成ZIP再改后缀为KMZ,避免SketchUp导出时可能出现的路径嵌套问题。
5. 测试NetworkLink的配置
- 检查NetworkLink的KML代码,确保
<href>里的预签名链接完整正确,没有URL编码错误(比如特殊字符没转义)。 - 临时把S3上的KMZ改成公开访问测试,如果纹理正常显示,说明预签名链接的权限或有效期有问题,得调整签名策略。
内容的提问来源于stack exchange,提问作者Asohan
相关产品推荐
相关产品推荐

