Openlayers WMS图层不能正确缩放

时间:2013-10-21 14:44:35

标签: geoserver wms

我开发了一个脚本来显示2层ob基本地图。

但它没有正确缩放。

我正在使用以下代码

你能建议我吗

<script type="text/javascript">
    var map, layer, select, hover, control;

    function init(){

        map = new OpenLayers.Map('map', {
            controls: [
                new OpenLayers.Control.PanZoom(),
                new OpenLayers.Control.Permalink(),
                new OpenLayers.Control.Navigation()
            ]
        });
             layer = new OpenLayers.Layer.WMS(
            "States WMS/WFS",
            "http://localhost:8080/geoserver/topp/wms",
            {layers: 'topp:india_road',transparent: true}

        );
        select = new OpenLayers.Layer.Vector("Selection", {styleMap: 
            new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
        });
        hover = new OpenLayers.Layer.Vector("Hover");
        map.addLayers([layer, hover, select]);
         var wmsLayer = new OpenLayers.Layer.Google('Google Layer',{} );
        map.addLayer(wmsLayer);



        map.setCenter(new OpenLayers.Bounds(143.83482400000003,-43.648056,148.47914100000003,-39.573891).getCenterLonLat(), 5);
    }
</script>

1 个答案:

答案 0 :(得分:0)

不正确缩放是什么意思?

你是否发现它们在你可以进行放大时与谷歌地图不匹配,或者直到你尝试平移然后图层不与谷歌地图保持一致时缩放工作?如果是这种情况,那么您可能会进一步放大Google地图服务所支持的范围。没有简单的方法来解决这个问题,我建议您使用以下设置更改允许的比例和缩放

  • minScale - float - 图层应显示的最小比例值
  • maxScale - float - 图层应显示的最大比例值
  • numZoomLevels - int - 缩放级别的总数 另请参阅此link有关Google缩放比例的更多信息。

如果您发现没有任何图层与Google背景相匹配。 I.E.它们看起来像是放大或偏移,然后很可能您的数据与谷歌地图图层的投影不同。 Google地图使用EPSG:900913作为其SRS。最简单的方法是让geoserver为您进行重新投影。转到地理服务器中的图层设置,确保正确设置了本机投影,并将声明的SRS设置为EPSG:900913。

如果这没有用,那么我认为我们需要更多关于问题究竟是什么的信息。