当前位置:编程学习 > 网站相关 >>

OpenLayers做一个鹰眼都做不出来!请教各位了

--------------------编程问答-------------------- 按道理,鹰眼的范围不就应该是整个图层的范围吗?而且应该比整个图层的范围还要大才对。为啥我这个它自动就给缩小了范围呢?那还叫啥鹰眼,那还不如叫显微镜了! --------------------编程问答-------------------- 你放大到最大的时候鹰眼不显示,但是你的图层能正常显示吗?
另外你用 overview1.maximizeControl(); 做什么?是不是因为以前你把它隐藏了? --------------------编程问答--------------------
引用 2 楼 josephsc 的回复:
你放大到最大的时候鹰眼不显示,但是你的图层能正常显示吗?
另外你用 overview1.maximizeControl(); 做什么?是不是因为以前你把它隐藏了?


图层显示正常啊。用overview1.maximizeControl(); 没有用,用不用无所谓,问题不在这里。

问题在于,为啥这个鹰眼只显示我图层的一个很小区域呢? --------------------编程问答-------------------- 你地图的baselayer是透明的吗?就是transparent是不是true?如果是的话鹰眼一开始只显示蓝筐 --------------------编程问答-------------------- 还有就是你那个很小的区域(鞍山附近)是不是在另外的图层?如果是的话可能要从baselayer找原因了 --------------------编程问答--------------------
引用 4 楼 josephsc 的回复:
你地图的baselayer是透明的吗?就是transparent是不是true?如果是的话鹰眼一开始只显示蓝筐


主层不透明啊,要是透明就做不了主层了吧。 --------------------编程问答--------------------
引用 5 楼 josephsc 的回复:
还有就是你那个很小的区域(鞍山附近)是不是在另外的图层?如果是的话可能要从baselayer找原因了


这个鹰眼应该显示全部的图层啊,而且我看到的这个区域的内容就是主层的。

能否说说都有哪些原因会造成这样的现象? --------------------编程问答-------------------- 上代码:       
 <div id="map1"></div>
       
<script defer="defer" type="text/javascript">
    var mapOptions = {
         maxExtent: new OpenLayers.Bounds(21302341.136, 4418321.164, 21600651.728, 4669627.718), 
         maxResolution: 1000,
         projection: "EPSG:4326",
         units: "m"
     };

     var map1 = new OpenLayers.Map('map1',mapOptions);
        
     tielu= new OpenLayers.Layer.WMS(
           "tielu", "http://127.0.0.1:8088/geoserver/wms",
            {
                layers: 'topp:demo',
styles: '',
                srs: 'EPSG:4326',
                tiled: 'true',
                tilesOrigin : map1.maxExtent.left + ',' + map1.maxExtent.bottom
             } ,
             {
                buffer: 0,
                displayOutsideMaxExtent: true
             } 
       );
  
        map1.addLayers([tielu]);
  map1.addControl(new OpenLayers.Control.LayerSwitcher());
       
        var overview1 = new OpenLayers.Control.OverviewMap();
        map1.addControl(overview1);
        
        //map1.setCenter(new OpenLayers.LonLat(21400000,4540000), 8);
  </script>


    我发现了,我所有的图层都是这一个毛病,就是鹰眼只对地图中很小的一个区域有效。就是说,一开始的时候,鹰眼的视野和地图的视野是不同的 --------------------编程问答--------------------
引用 7 楼 qqqq764065388 的回复:
能否说说都有哪些原因会造成这样的现象?


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

其他原因也有可能吧,我就列了我经历过的 --------------------编程问答--------------------
引用 8 楼 qqqq764065388 的回复:
上代码:       
 <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);

出来了。 --------------------编程问答--------------------
引用 11 楼 qqqq764065388 的回复:
应该是这样加的: 
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属性设置相符,这也许是不能显示的原因吧?以前做图还真没遇到过这种情况。谢谢你分享方法
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,