SuperMapiClientforFlex控制地图显示范围.PDFVIP

  • 7
  • 0
  • 约2.82千字
  • 约 6页
  • 2019-06-05 发布于湖北
  • 举报
SuperMap iClient for Flex 控制地图显示范围解决方案 一、功能描述 如果你有 份全幅的地图数据,比如中国地图,当发布出来之后却只想显示某个区域, 比如某个省,那么本文可能会对你有所帮助。 本文将描述如何使用图层的viewRegion 属性和地图的limitBounds 两种方式来控制地图 的显示,从而达到只显示给定区域地图的效果。前者对于区域外的地图瓦片不会向服务端请 求,后者控制浏览过程中无法移动地图到限定范围之外,使用不同的方式来实现控制地图显 示范围的目标。如图1所示,可浏览到的区域只是全幅地图的某 部分。 (图1) 如果使用已经切好的缓存地图,只想显示某 部分的地图时,存在两种情况:(1)对于 整幅地图的缓存图,会让用户关注的焦点就在当前地图区域;(2 )对于某个区域的缓存图, 如海南省,则会让用户感觉不到区域以外地图的存在。 另外,对于动态图层也可以完全适用。 二、使用示例 1、通过图层属性viewRegion 来控制显示区域 下面以SuperMap iServer Java 6R 中的China 地图为例具体说明。图3是图2的 部分, 只显示了海南省及周边部分所在的某个比例尺下的地图: (图2) (图3) 图4 显示的是地图在进入到下 个比例尺级别和拖动到了区域以外的情况,此时区域以 外的部分就不会向服务端请求图片 (如图4)。 (图4) 具体使用方法如图5的代码所示。最小的比例尺建议设置为能显示此区域的全幅比例尺, 如下面的最小比例尺设置为 1:850000,在第 次出图的时候就是海南省的全幅范围 (如图 3)。另外需要将地图的中心点移动到控制区域的中心位置,如图中的红色框选部分。 显示区域的中心点 显示区域的范围 (图5) 注意事项: (1)如果使用自己切的缓存图,那么设置的可视范围、中心点及比例级别和应该和切的缓 存地图保持 致,保 能正确出图。 (2)为了更好的体验效果,建议将瓦片大小(tileSize )设置为256。 (3)由于瓦片图层的限制,显示出了周边相邻瓦片的区域是不能避免的。 2、通过设置Map 的limitBounds 属性来控制显示区域 使用limitBounds 属性控制显示范围的方式涉及了两个属性接口。 limitBounds,显示控制范围 (Rectangle2D );默认null,不做控制 marginFactor ,控制显示时允许缓冲区域相对于地图宽高的比例;限定 0=maginFactor1,默认值 0.382 。该属性只有当地图控制范围大于显示范围的时候才 会生效,详见图9 说明。 设置限定范围为海南省范围 (108,18,111,20)。效果图如下: 考虑两种不同情况: 1) 控制显示内容 (红色边框标注)小于显示窗口时: 图6 中标注了当前设定的控制范围: 控制范围 (图6 ) 图7,图8 可以看到在移动到边缘位置的时候地图已经无法继续沿着黄色箭头标注 的方向移动。 控制范围 (图7 ) 控制范围 (图8 ) 2) 控制显示内容 (绿色背景范围)大于显示窗口时: 图9 给出了

文档评论(0)

1亿VIP精品文档

相关文档