搭建world wind WMS server(For world wind c# with LandSAT&SRTM30)之client配置

9 篇文章 0 订阅
2 篇文章 0 订阅

Client配置

1.       For LandSAT

你可以参考WorldWind/bin/Debug/Config/Earth/@images.tmplandsat的结构和landsat下载数据中esta.xml中的相关参数,自行添加client配置文件或修改现有配置文件。请将配置文件放在WorldWind/bin/Debug/Config/Earth/目录下。

 

需要注意的是请选择WMSAccessor(而不是ImageTileService)作为ImageAccessor的子节点。

      <ImageAccessor>

        <LevelZeroTileSizeDegrees>2.25</LevelZeroTileSizeDegrees>

        <NumberLevels>2</NumberLevels>

        <TextureSizePixels>512</TextureSizePixels>

        <ImageFileExtension>png</ImageFileExtension>

        <WMSAccessor>

          <ServerGetMapUrl>http://10.11.5.23:8085/wms</ServerGetMapUrl>

          <ServiceName>OGC:WMS</ServiceName>

          <Version>1.3.0</Version>

          <ImageFormat>image/png</ImageFormat>

          <WMSLayerName>esat</WMSLayerName>

          <UseTransparency>true</UseTransparency>

          <ServerLogoFilePath>Data/Icons/Interface/earth-western.png</ServerLogoFilePath>

        </WMSAccessor>

      </ImageAccessor>

 

整个配置文件示例如下:

<?xml version="1.0" encoding="UTF-8"?>

<LayerSet Name="Local WMS" ShowOnlyOneLayer="false" ShowAtStartup="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LayerSet.xsd">

     <ChildLayerSet Name="Imagery" ShowOnlyOneLayer="false" ShowAtStartup="true">

    <QuadTileSet ShowAtStartup="true">

      <Name>LandSAT</Name>

      <DistanceAboveSurface>0</DistanceAboveSurface>

      <BoundingBox>

        <North>

          <Value>84.0</Value>

        </North>

        <South>

          <Value>-60.0</Value>

        </South>

        <West>

          <Value>-180.0</Value>

        </West>

        <East>

          <Value>180.0</Value>

        </East>

      </BoundingBox>

      <TerrainMapped>true</TerrainMapped>

      <ImageAccessor>

        <LevelZeroTileSizeDegrees>2.25</LevelZeroTileSizeDegrees>

        <NumberLevels>2</NumberLevels>

        <TextureSizePixels>512</TextureSizePixels>

        <ImageFileExtension>png</ImageFileExtension>

        <WMSAccessor>

          <ServerGetMapUrl>http://10.11.5.23:8085/wms</ServerGetMapUrl>

          <ServiceName>OGC:WMS</ServiceName>

          <Version>1.3.0</Version>

          <ImageFormat>image/png</ImageFormat>

          <WMSLayerName>esat</WMSLayerName>

          <UseTransparency>true</UseTransparency>

          <ServerLogoFilePath>Data/Icons/Interface/earth-western.png</ServerLogoFilePath>

        </WMSAccessor>

      </ImageAccessor>

      <ExtendedInformation>

        <ToolBarImage>Data/Icons/Interface/nlt-landsat-pseudo.png</ToolBarImage>

      </ExtendedInformation>

    </QuadTileSet>

     </ChildLayerSet>

</LayerSet>

 

 

2.       For SRTM

World wind c#版目前是不支持通过wms的方式访问SRTM的。因此

Ø  修改代码是的ww能够支持wms的访问方式。

Ø  修改client配置文件。

 

修改代码

Ø  修改TerrainTileServic

添加成员变量及属性

        protected string m_serverType;

        protected bool m_isWMS;

        protected bool m_isCompressed;

       public string ServerType

        {

            get

            {

                return m_serverType;

            }

        }

 

        public bool IsWMS

        {

            get

            {

                return m_isWMS;

            }

        }

 

        public bool IsCompressed

        {

            get

            {

                return m_isCompressed;

            }

        }       

 

修改构造函数

 

         public TerrainTileService(

              string serverUrl,

              string dataSet,

              double levelZeroTileSizeDegrees,

              int samplesPerTile,

              string fileExtension,

              int numberLevels,

              string terrainTileDirectory,

              TimeSpan terrainTileRetryInterval,

              string dataType,

            string serverType,

            string compressionType)

 

         {

              m_serverUrl = serverUrl;

              m_dataSet = dataSet;

              m_levelZeroTileSizeDegrees = levelZeroTileSizeDegrees;

              m_samplesPerTile = samplesPerTile;

              m_numberLevels = numberLevels;

              m_fileExtension = fileExtension.Replace(".","");

              m_terrainTileDirectory = terrainTileDirectory;

              if(!Directory.Exists(m_terrainTileDirectory))

                   Directory.CreateDirectory(m_terrainTileDirectory);

              m_terrainTileRetryInterval = terrainTileRetryInterval;

              m_dataType = dataType;

              m_serverType = serverType;

              m_isWMS = m_serverType==null || !m_serverType.Contains("WMS") ? false : true;

              m_isCompressed = compressionType == null || compressionType.Length == 0 ? false : true;

         }

 

 

 

 

Ø  修改TerrainDownloadRequest

         public TerrainDownloadRequest(TerrainTile tile, TerrainTileService owner, int row, int col, int targetLevel) : base(owner)

         {

              TerrainTile = tile;

            if (owner.IsWMS)

            {

                download.Url = String.Format(CultureInfo.InvariantCulture,

                    "{0}?request=GetMap&layers={1}&level={2}&bbox={3},{4},{5},{6}&Format=image/{7}&width=150&height=150&srs=EPSG:4326&Version=1.30&styles=",

                    owner.ServerUrl,

                    owner.DataSet,

                    targetLevel,tile.West,tile.South,tile.East,tile.North,owner.FileExtension);

            }

            else

            {

                download.Url = String.Format(CultureInfo.InvariantCulture,

                    "{0}?T={1}&L={2}&X={3}&Y={4}",

                    owner.ServerUrl,

                    owner.DataSet,

                    targetLevel, col, row);

            }

         }

 

         protected void ProcessFile()

         {

            if (download.ContentType == ContentTypeZip)

{

          ……

}

else if (download.ContentType == ContentType7z || download.ContentType == ContentTypeXCompressed)

{

          ……

}

            else if(download.SavedFilePath.EndsWith(".tmp"))

            {

                String fileName = download.SavedFilePath.Substring(0,download.SavedFilePath.Length-4);

                if (!File.Exists(download.SavedFilePath))

                {

                    return;

                }

 

                if (File.Exists(fileName))

                {

                    File.Delete(fileName);

                }

 

                File.Move(download.SavedFilePath, fileName);

            }

           

}

 

Ø  修改ConfigurationLoader:getTerrainAccessorsFromXPathNodeIterator及其他调用TerrainTileService的地方

 

compressionType = getInnerTextFromFirstChild(tileServiceIter.Current.Select("CompressonType"));

serverType = getInnerTextFromFirstChild(tileServiceIter.Current.Select("ServerType"));

 

                       TerrainTileService tts = new TerrainTileService(

                            serverUrl,

                            dataSetName,

                            levelZeroTileSizeDegrees,

                            (int)samplesPerTile,

                            fileExtension,

                            (int)numberLevels,

                            Path.Combine(cacheDirectory, terrainAccessorName),

                            World.Settings.TerrainTileRetryInterval,

                            dataFormat,

                        serverType,

                        compressionType);

修改client配置文件

Srtm的设置是通过WorldWind/bin/Debug/Config/Earth.xml来配置的。

新增<ServerType></ServerType>节点指定server的类型,如果是wms的,直接填写wms,否则可以不填。

整个配置文件示例如下:

<?xml version="1.0" encoding="UTF-8"?>

<World Name="Earth" EquatorialRadius="6378137.0" LayerDirectory="Earth" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="WorldXmlDescriptor.xsd">

     <TerrainAccessor Name="nasa SRTM30">

         <TerrainTileService>

              <ServerUrl>http://10.11.5.23:8085/wms</ServerUrl>

              <DataSetName>srtm30</DataSetName>

              <LevelZeroTileSizeDegrees>20</LevelZeroTileSizeDegrees>

              <NumberLevels>12</NumberLevels>

              <SamplesPerTile>150</SamplesPerTile>

              <DataFormat>Int16</DataFormat>

              <FileExtension>bil</FileExtension>

      <CompressonType></CompressonType>

      <ServerType>WMS</ServerType>

         </TerrainTileService>

         <LatLonBoundingBox>

              <North>

                   <Value>90.0</Value>

              </North>

              <South>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
BS .net 4.0 C# Web SQL Server 2012-2017 Fastreport报表 介绍一套仓储管理系统源码,以下为作者留言 吉特仓储管系统基础版本 适合单仓库,基本的仓库入库管理,出库管理,盘点,报损,移库,库位等管理,有着可视化图表。 系统采用Bootstrap 开发,UI 相对比较简单,业务功能不复杂,适合一般的学习开发者。 软件声明 (1)软件允许各位开发者用于自己软件的项目开发,请保留软件标题信息,版权信息,在下不胜感激。 (2)坚决抵制某些企业拿了源程序,对外宣称是自己公司团队开发,如若发现必定网络舆论讨伐。 (3)由于之前开源的版本和一些企业闹出版权问题,吉特仓储管理系统均为自己开发,其他公开销售源码,软件的均为未经授权的盗版,为不法企业和个人。 (4)本人目前定制二次开发各种仓库系统,不单独销售成品软件,如有需求可以直接联系本人。 功能清单 主要包含功能如下: 系统管理 ----员工管理 ----角色管理 ----部门管理 ----菜单管理 ----权限分配 ----标识符管理 基本资料 ----供应商管理 ----库位管理 ----客户管理 ----计量单位 ----产品类别 ----产品管理 仓库管理 ----入库管理 ----出库管理 ----报损管理 ----移库管理 ----盘点管理 ----退货管理 报表管理 ----库存清单 ----货品统计 ----出入库报表 ----入库报表 ----出库报表 ----报损报表 ----退货报表 ----客户报表 ----供应商报表 ----台账记录 ----自定义报表 readme中有作者联系方式
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值