iServer6R使用WMTS自定义比例尺出图

使用背景

  因为iServer6R默认与国家测绘局发布的标准比例尺集一一对应,如下所示:

[0.7031249999891485,0.35156249999999994,0.17578124999999997,0.08789062500000014,

0.04394531250000007,0.021972656250000007,0.01098632812500002,0.00549316406250001,

0.0027465820312500017,0.0013732910156250009,0.000686645507812499,0.0003433227539062495,

0.00017166137695312503,0.00008583068847656251,0.000042915344238281406,0.000021457672119140645,

0.000010728836059570307,0.000005364418029785169,0.000002682210361715995,0.0000013411051808579975]

但是iSever6R SP1 新增了一个功能,可以自定义设置比例尺集合,那么下面我们就来说明下WMTS自定义比例尺在Flex客户端如何使用。

实现步骤

  例如:我们需要将范例数据中的WMTS 的world地图设置自定义的比例尺,操作如下

1.      编写简单的调用默认的WMTS代码,具体代码如下图所示:

iServer6R使用WMTS自定义比例尺出图_第1张图片

这里要注意的一点tileMatrixSet属性,此属性可以在WMTS的表述中查看,其表述的意义就是瓦片矩阵集的唯一标识符,矩阵集,此属性必写

 编写完成后,运行效果如下图所示,我们可以看到默认的是按照国家测绘局发布的标准比例尺,共20级。

iServer6R使用WMTS自定义比例尺出图_第2张图片

 

2.      下面我们修改比例尺显示,例如我们需要将此world地图按照[1/700000000,1/350000000,1/175000000,1/87500000,1/43750000,1/2187500]的比例尺来显示。

那么首先需要在浏览器中,打开iServer Managerhttp://localhost:8090/iserver/manager)输入完用户名和密码后,依次点击服务,服务接口,wmts100。

iServer6R使用WMTS自定义比例尺出图_第3张图片

3.      将wellKnownScaleSet(标准比例尺集合)一栏选择custom,将DPI设置为96,将自定义比例尺集合填入你所需要设置的比例尺,例如:700000000,350000000,175000000,87500000,43750000,21875000
填写完成后保存变更即可。

iServer6R使用WMTS自定义比例尺出图_第4张图片

4.      我们可以在WMTS服务里查看更新后的WMTS地图服务(http://localhost:8090/iserver/services/maps/wmts100/1.0.0/WMTSCapabilities.xml
5.      下来我们需要修改Flex端的代码,因为服务端的WMTS默认比例尺变成我们自己修改的了。那么首先我们需要得到更改比例尺后的地图,更改后地图的关键属性tileMatrixSet,我们需要在WMTS表述里查看。如下图所示:

iServer6R使用WMTS自定义比例尺出图_第5张图片

6.      由上图,我们可以看出更新后的tileMatrixSet值我们需要填入的是custom_World Map,修改Flex代码,修改后代码如下:

iServer6R使用WMTS自定义比例尺出图_第6张图片 

7.      我们已经在服务端把WMTS地图的比例尺改了,但是如果你现在直接运行代码是不出图的,而且比例尺还是20级国家的。下来我们需要用到iClient for Flex里面ScaleUtil类来计算分辨率,将得到的分辨率设置在WMTS中,从而完成自定义比例尺。
其中,ScaleUtil类具体用到的属性就是

iServer6R使用WMTS自定义比例尺出图_第7张图片

我们可以trace得到其返回的结果,将返回结果输出到Flex控制台:(也可以用数组,Alert等等方法来获取这个结果)

iServer6R使用WMTS自定义比例尺出图_第8张图片

8.      将分辨率添加到WMTS的resolutions属性中,resolutions="{[1.6637547657963636,0.8318773828981818,0.4159386914490909,0.20796934572454545,0.10398467286227273,0.05199233643113636]}"
代码最终截图如下图所示:

iServer6R使用WMTS自定义比例尺出图_第9张图片

9.      运行程序,最终结果如下,我们可以看到此时比例尺已经更改成功。

iServer6R使用WMTS自定义比例尺出图_第10张图片

 

你可能感兴趣的:(server)