javascript - 无法在谷歌地球中呈现 kml 文件
问题描述
当我尝试在 Google 地球中的 kml 文件下方进行渲染时,我得到了带有红色边框和红色 X 的大透明白色框作为输出。谁能告诉我为什么它不能正确渲染。
kml 文件链接: https ://www.wpc.ncep.noaa.gov/kml/winwx/HPC_Day1-3_psnow_gt_08_nlbody.kml
解决方案
如果您尝试在新的网络版 Google 地球 (v9) 中查看此内容,那么您可能会遇到 CORS 问题。
在 Earth Pro (v7) 中查看时,提供评论的链接对我有用,它加载了一个带有图例的屏幕叠加层、落基山脉中的一些小数据多边形,以及一个带有白色文本的巨大地面叠加图像在美国中部。
在网页版 Google 地球上,它给了我您所描述的红色 X。如果您查看 Chrome 开发人员控制台,您会看到该 KML 文件请求的图像来自未在传出文件上设置必要的 CORS(跨源请求)标头的服务器(下面的屏幕截图)。红色 X 正是 Earth 在无法获取或加载图像时显示的内容。不幸的是,网页版地球有额外的安全要求,应用程序请求的所有文件都必须启用 CORS。除非您认识 NOAA 的某个人可以更新服务器以提供必要的 CORS 标头,否则您必须坚持使用 Earth Pro 才能查看此标头。
推荐阅读
- javascript - 在 Edge 浏览器中,如何执行 window.open() 并且不在新窗口或标签中保持会话?
- rdflib - 有没有办法将 rdflib 序列化程序配置为使用特定的 UTC 日期格式?
- python - Scrapy ModuleNotFoundError:没有名为“import”的模块
- android - Android:订阅版本的促销代码
- python - Pandas groupby 组之间的操作
- sharding - 当我们在运行时增加分片时,Kinesis 如何保证消息的顺序?
- python - 如何找到最接近质心的“x”数量的元素
- azure-devops - 如何在 Azure DevOps 中跨项目引用用户?
- python - 错误:UndefinedVariableError:未定义名称“injured_persons”
- mysql - 为什么这个 IF NOT EXISTS 语句不行?