如何在Google Earth Web/Online中添加指定WMS服务?求成功经验
在Google Earth Web中添加WMS服务的可行方案
- Google Earth Web原生不支持直接添加WMS服务,这是你折腾半天没成的核心原因——桌面版能用的KML和瓦片叠加逻辑,到Web版里完全不兼容。
- 目前有两种可行的替代思路:
- 手动编写带WMS引用的KML文件
别直接用桌面版的KML,得自己写一个包含WMS瓦片请求的KML,示例代码如下:
重点注意:得从你给的WMS GetCapabilities链接里,提取这个图层正确的经纬度范围填到<kml xmlns="http://www.opengis.net/kml/2.2"> <Folder> <name>RLP WMS图层</name> <GroundOverlay> <name>WMS叠加层</name> <Icon> <href>http://www.geoportal.rlp.de/mapbender/php/wms.php?layer_id=61675&REQUEST=GetMap&VERSION=1.1.1&SERVICE=WMS&BBOX=[bbox]&WIDTH=256&HEIGHT=256&SRS=EPSG:4326&FORMAT=image/png&TRANSPARENT=TRUE</href> <viewRefreshMode>onStop</viewRefreshMode> <viewRefreshTime>0.5</viewRefreshTime> <viewBoundScale>1.0</viewBoundScale> </Icon> <LatLonBox> <!-- 这里填你要覆盖的地理范围,从WMS的GetCapabilities响应里找对应图层的BoundingBox --> <north>50.8</north> <south>49.2</south> <east>8.5</east> <west>6.0</west> </LatLonBox> </GroundOverlay> </Folder> </kml><LatLonBox>里,同时确保请求参数符合WMS 1.1.1规范,比如SRS=EPSG:4326是Google Earth Web认的坐标系。 - 解决跨域问题
如果写完KML导入还是加载不出来,大概率是这个WMS服务没开跨域权限。Google Earth Web在浏览器里跑,受CORS政策限制,服务没允许跨域的话浏览器会直接拦掉请求。这种情况可以搭个本地代理服务器转发WMS请求,绕开CORS限制。
- 手动编写带WMS引用的KML文件
- 实测情况:已经有不少人用第一种自定义KML的方法成功在Google Earth Web加载了WMS服务,关键就是参数要配对,同时搞定跨域的问题。
内容的提问来源于stack exchange,提问作者mvsc1
相关产品推荐
相关产品推荐

