当前位置: 代码迷 >> GIS >> OpenLayers做一个鹰眼都做不出来!了
  详细解决方案

OpenLayers做一个鹰眼都做不出来!了

热度:223   发布时间:2016-05-05 06:11:10.0
OpenLayers做一个鹰眼都做不出来!请教各位了
本帖最后由 qqqq764065388 于 2012-01-31 11:27:04 编辑
按理说,做一个鹰眼不是很简单的事情吗?可是我用下面这三行做的鹰眼,却不行!
 
 var overview1 = new OpenLayers.Control.OverviewMap();
 map.addControl(overview1);
 overview1.maximizeControl();


不行在哪里呢?这个鹰眼所涉及的范围,只是我图层中央一个很小的区域!奇怪吧?比如我的图层是辽宁地图,这个鹰眼只显示鞍山周边很小一块区域!所以在图层全显示的时候,这个鹰眼啥也看不出来,红框是充满鹰眼的。只有我把图层放大到1:1800M,而且移动到鞍山附近时,鹰眼才算活了,红框才变小了,可以移动了。

这是咋回事呢?
------解决方案--------------------
你放大到最大的时候鹰眼不显示,但是你的图层能正常显示吗?
另外你用 overview1.maximizeControl(); 做什么?是不是因为以前你把它隐藏了?
------解决方案--------------------
你地图的baselayer是透明的吗?就是transparent是不是true?如果是的话鹰眼一开始只显示蓝筐
------解决方案--------------------
还有就是你那个很小的区域(鞍山附近)是不是在另外的图层?如果是的话可能要从baselayer找原因了
------解决方案--------------------
引用:
能否说说都有哪些原因会造成这样的现象?


我所知的有下面几个原因
1.wms 连接不成功
2.baselayer 设置成透明
3.投影设置不对

其他原因也有可能吧,我就列了我经历过的
------解决方案--------------------
引用:
上代码:       
 <div id="map1"></div>
       
<script defer="defer" type="text/javascript">
    var mapOptions = {
         maxExtent: new OpenLayers.Bounds(21302341.136, 4418321.164, 21600651.728,……


maxExtent: new OpenLayers.Bounds(21302341.136, 4418321.164, 21600651.728, 4669627.718)


projection: "EPSG:4326"
好像不符吧,这个bounds不是EPSG:4326的,参看
http://spatialreference.org/ref/epsg/4326/
------解决方案--------------------
引用:
应该是这样加的: 
var  MAP2options={layers: [tielu.clone(),demo.clone()],minRatio:20,maxRatio:8,mapOptions:mapOptions};    
 ovMap = new OpenLayers.Control.OverviewMap(MAP2options);
 map.addControl(ovMap)……


根据你的答案刚才上网查了一下,如果map不是默认属性,OverviewMap控件的属性设置也要和map属性设置相符,这也许是不能显示的原因吧?以前做图还真没遇到过这种情况。谢谢你分享方法
  相关解决方案