我想从我自己的服务器而不是 java worldwind 中的 nasa 服务器获取数据

Posted

技术标签:

【中文标题】我想从我自己的服务器而不是 java worldwind 中的 nasa 服务器获取数据【英文标题】:I want to get data from my own server instead of nasa servers in java worldwind 【发布时间】:2021-11-06 01:49:48 【问题描述】:

在 worldwind java 项目中,我在 layer.xml 文件中编写了自己的 localhost 服务器链接,而不是 nasa 服务器链接。但该项目仍继续从美国宇航局提取数据。我应该怎么做才能从我自己的站点中提取数据?

我编辑的xml文件的代码:

<Layer version="1" layerType="TiledImageLayer">
    <DisplayName>Blue Marble (WMS) 2004</DisplayName>
    <Service serviceName="OGC:WMS" version="1.3">
        <GetCapabilitiesURL>http://localhost:8080/geoserver/www/explorer/index.html</GetCapabilitiesURL>
        <GetMapURL>http://localhost:8080/geoserver/www/explorer/index.html</GetMapURL>
        <LayerNames>bmng200405</LayerNames>
    </Service>
    <RetrievePropertiesFromService>true</RetrievePropertiesFromService>
    <!-- day month year hours:minutes:seconds timezone -->
    <LastUpdate>26 03 2009 00:00:00 GMT</LastUpdate>
    <DataCacheName>Earth/BMNGWMS/BMNG(Shaded + Bathymetry) Tiled - Version 1.1 - 5.2004</DataCacheName>
    <ImageFormat>image/dds</ImageFormat>
    <AvailableImageFormats>
        <ImageFormat>image/png</ImageFormat>
        <ImageFormat>image/dds</ImageFormat>
    </AvailableImageFormats>
    <FormatSuffix>.dds</FormatSuffix>
    <NumLevels count="5" numEmpty="0"/>
    <TileOrigin>
        <LatLon units="degrees" latitude="-90" longitude="-180"/>
    </TileOrigin>
    <LevelZeroTileDelta>
        <LatLon units="degrees" latitude="36" longitude="36"/>
    </LevelZeroTileDelta>
    <TileSize>
        <Dimension  />
    </TileSize>
    <Sector>
        <SouthWest>
            <LatLon units="degrees" latitude="-90" longitude="-180"/>
        </SouthWest>
        <NorthEast>
            <LatLon units="degrees" latitude="90" longitude="180"/>
        </NorthEast>
    </Sector>
    <ForceLevelZeroLoads>true</ForceLevelZeroLoads>
    <RetainLevelZeroTiles>true</RetainLevelZeroTiles>
    <UseTransparentTextures>false</UseTransparentTextures>
    <RetrievalTimeouts>
        <ReadTimeout>
            <Time units="milliseconds" value="30000"/>
        </ReadTimeout>
    </RetrievalTimeouts>
    <!-- The following lines are included just to show how to set the values to other than their defaults -->
    <MaxAbsentTileAttempts>2</MaxAbsentTileAttempts>
    <MinAbsentTileCheckInterval>1000</MinAbsentTileCheckInterval>
</Layer>

我在运行项目时仍然看到超时错误,试图从 NASA 的站点提取数据。

Sep 09, 2021 2:44:50 PM gov.nasa.worldwind.util.SessionCacheRetrievalPostProcessor run
SEVERE: Retrieval failed for https://worldwind26.arc.nasa.gov/elev?EXCEPTIONS=application/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0
Sep 09, 2021 2:44:50 PM gov.nasa.worldwind.util.SessionCacheUtils retrieveSessionData
SEVERE: Exception while retrieving resources for https://worldwind26.arc.nasa.gov/elev?EXCEPTIONS=application/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0
java.net.SocketTimeoutException: Read timed out

【问题讨论】:

在无法访问代码之前,我们无法确定实际原因 我编辑了主题 【参考方案1】:

首先,确保你正在加载你想要的配置文件(可能有一个 worldwind.jar 所以要明确):

System.setProperty("gov.nasa.worldwind.config.file","path/to/worldwind.xml");

然后清除 WorldWind 下载缓存,以防万一。

Configuration Documentation Here

【讨论】:

以上是关于我想从我自己的服务器而不是 java worldwind 中的 nasa 服务器获取数据的主要内容,如果未能解决你的问题,请参考以下文章

我想从我的 ggplots 中排除一个观察/元组。我只想显示每个国家而不是世界总数

如何从 iOS 设备(而不是自己的相机)流式传输 (RTMP) 视频

使用 Java 或 Python 从我的网络摄像头捕获单个图像

难以配置 SMTP 服务器以发送电子邮件

每当我想从我的班级运行 Intent 时,NPE [重复]

我想从我在服务器响应中收到的 json 中迭代日期