代码之家  ›  专栏  ›  技术社区  ›  Bernie Perez

将png或jpeg用于带有Openlayers的地图(缩放问题)

  •  7
  • Bernie Perez  · 技术社区  · 16 年前

    我用一个图像来显示我的地图和Openlayers。我的JS代码如下:

    map = new OpenLayers.Map('map');
    
    var options = {numZoomLevels: 7,
                    isBaseLayer: true,
                    };
    
    var globe = new OpenLayers.Layer.Image(
        'Globe ESA',
        'http://upload.wikimedia.org/wikipedia/commons/0/07/World_map_blank_black_lines_4500px.gif',
        new OpenLayers.Bounds(-180, -90, 180, 90),
        new OpenLayers.Size(4500, 2234),
        options);
    
    map.addLayers(globe);
    
    markers = new OpenLayers.Layer.Markers("markers");
    map.addLayer(markers);
    
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.zoomToMaxExtent();
    map.addControl(new OpenLayers.Control.MousePosition());
    

    我的CSS是:

    #map {
        width: 640px;
        height: 480px;
        border: 1px solid black;
    }
    

    但我不能让Openlayers缩小大图像。它总是以全分辨率显示,我无法缩小以显示整个地球。请帮忙。

    1 回复  |  直到 16 年前
        1
  •  11
  •   Jon Snyder    16 年前

    您需要设置图像的大小,使其在完全缩小时显示。

    var globe = new OpenLayers.Layer.Image(
        'Globe ESA',
        'http://upload.wikimedia.org/wikipedia/commonS/0/07/World_map_blank_black_lines_4500px.gif',
        new OpenLayers.Bounds(-180, -90, 180, 90),
        new OpenLayers.Size(1125,558),
        options);
    

    我把尺寸改成了原来的四分之一。如果你想把它放大,你可以把它缩小。