Java WorldWind项目替换NASA数据源为本地服务器后仍请求NASA数据的技术咨询
解决Java WorldWind持续从NASA拉取数据的问题
从你提供的错误日志来看,问题出在高程数据服务上,而不是你修改的Blue Marble图层——日志里的请求是针对NASA的elev WMS服务(用来获取地形高程数据),和你调整的Blue Marble影像图层是两个独立的数据源。下面一步步帮你解决:
1. 修正Blue Marble图层的配置错误
首先你当前的layer.xml里有个明显问题:你把GetCapabilitiesURL和GetMapURL指向了GeoServer的前端页面http://localhost:8080/geoserver/www/explorer/index.html,这是错误的。WMS服务的正确端点应该是GeoServer的WMS接口,也就是:
<GetCapabilitiesURL>http://localhost:8080/geoserver/wms</GetCapabilitiesURL> <GetMapURL>http://localhost:8080/geoserver/wms</GetMapURL>
同时要确保你的GeoServer已经正确发布了bmng200405这个图层,否则Blue Marble图层也无法正常加载。
2. 修改高程数据的配置
WorldWind默认使用NASA的高程服务,你需要找到并修改高程模型的配置文件:
- 找到WorldWind配置目录下的
Earth/EarthElevationModel.xml(通常在项目的config文件夹内) - 打开文件后,定位到
<Service>节点,把GetCapabilitiesURL和GetMapURL替换成你本地GeoServer的WMS端点http://localhost:8080/geoserver/wms - 同时修改
LayerNames为你在GeoServer上发布的高程图层名称(比如如果发布了SRTM高程数据,可能是srtm:dem之类的,根据你的实际配置调整)
3. 清理WorldWind缓存
WorldWind会缓存之前请求过的服务数据和瓦片,即使你修改了配置,旧的缓存可能还会被加载。你需要:
- 找到WorldWind的缓存目录,默认在用户主目录下的
.worldwind/cache - 删除这个目录下的所有内容,确保项目启动时重新从本地服务拉取数据
4. 验证本地服务可用性
在修改配置前,先在浏览器里测试你的本地GeoServer WMS服务是否正常:
- 访问
http://localhost:8080/geoserver/wms?REQUEST=GetCapabilities,确认能返回正常的WMS能力文档(XML格式) - 测试GetMap请求,比如
http://localhost:8080/geoserver/wms?REQUEST=GetMap&LAYERS=你的图层名&SRS=EPSG:4326&BBOX=-180,-90,180,90&WIDTH=512&HEIGHT=256&FORMAT=image/png,确认能返回正确的瓦片影像
完成这些步骤后,重新启动项目,应该就不会再请求NASA的服务器了。
内容的提问来源于stack exchange,提问作者Fatih Aksoy
相关产品推荐
相关产品推荐

