OpenLayers做一个鹰眼都做不出来!请教各位了
--------------------编程问答-------------------- 按道理,鹰眼的范围不就应该是整个图层的范围吗?而且应该比整个图层的范围还要大才对。为啥我这个它自动就给缩小了范围呢?那还叫啥鹰眼,那还不如叫显微镜了! --------------------编程问答-------------------- 你放大到最大的时候鹰眼不显示,但是你的图层能正常显示吗?另外你用 overview1.maximizeControl(); 做什么?是不是因为以前你把它隐藏了? --------------------编程问答--------------------
图层显示正常啊。用overview1.maximizeControl(); 没有用,用不用无所谓,问题不在这里。
问题在于,为啥这个鹰眼只显示我图层的一个很小区域呢? --------------------编程问答-------------------- 你地图的baselayer是透明的吗?就是transparent是不是true?如果是的话鹰眼一开始只显示蓝筐 --------------------编程问答-------------------- 还有就是你那个很小的区域(鞍山附近)是不是在另外的图层?如果是的话可能要从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>
我发现了,我所有的图层都是这一个毛病,就是鹰眼只对地图中很小的一个区域有效。就是说,一开始的时候,鹰眼的视野和地图的视野是不同的 --------------------编程问答--------------------
我所知的有下面几个原因
1.wms 连接不成功
2.baselayer 设置成透明
3.投影设置不对
其他原因也有可能吧,我就列了我经历过的 --------------------编程问答--------------------
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属性设置相符,这也许是不能显示的原因吧?以前做图还真没遇到过这种情况。谢谢你分享方法
补充:企业软件 , 地理信息系统