Map файл:
Код: Выделить всё
# Map-файлы начинаются с ключевого слова MAP, обозначающего начало
# "map"-объекта. Закрывает map-объект ключевое слово END в конце файла. Вся
# карта, которая будет отображаться пользователю описывается внутри.
MAP
  NAME           "WMS"
  STATUS         ON
  IMAGETYPE      PNG
  EXTENT         0.219579 0.147636 0.223491 0.151293
  SIZE           800 600
#  SHAPEPATH      "/ms4w/apps/Blag_network_polyline/"
  IMAGECOLOR     255 255 255
WEB
#    TEMPLATE  "template.html"
#    IMAGEPATH "H:/ms4w/tmp/ms_tmp/"
#    IMAGEURL  "/tmp/"
	METADATA
                wms_enable_request "*" 
		wms_title "BLG Demo"
		wms_abstract "This is the WMS demo from ADM"
		wms_onlineresource "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
		wms_srs "EPSG:4326"
        wms_onlineresource         "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
        wms_getfeatureinfo         "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
        wms_featureinfoformat      "text/plain"
	END
  END
  PROJECTION
 #  "proj=latlong"
   "ellps=WGS84"
   "datum=WGS84"
   "init=epsg:4326"
  END
#   Внутри MAP-объекта определяются новые объекты - слои (LAYER).
#   Обязательно нужно определить по крайней мере один слой.
#   Количество слоев ограничено сверху (по умолчанию - не больше 100 слоев),
#   если нужно большее количество слоев, придется перекомпилировать
#   MapServer (см. заголовочный файл map.h)
  LAYER # Определяем слой
    NAME         Blag_network
#    DATA         Blag_network_polyline
    TYPE         LINE
    TEMPLATE template.html
    STATUS DEFAULT
    CONNECTIONTYPE OGR
    CONNECTION "Blag_network_polyline.TAB"
    STYLEITEM "AUTO"
PROJECTION   
         "init=epsg:4326"
       END
      METADATA
               "wms_title"       "Blag_network"
               "wms_abstract"       "Blag_network layer"
         "wms_include_items"    "all"
         "wms_srs"       "EPSG:4326"
         "wms_format"             "image/gif"
         "wms_extent"       "0.219579 0.147636 0.223491 0.151293"
   END
#     Внутри слоя нужно определить как минимум один класс. Классов может быть
#     несколько, но не больше 10 (иначе опять придется перекомпилировать MapServer)
    CLASS
      NAME       "Blag_network"
#       Внутри класса определяются стили: как именно данный класс отобразить
#       на карте.
      STYLE
        COLOR        102 252 202
        OUTLINECOLOR 72 172 72
      END
    END
  END # Конец определения слоя
END # Конец определения картыКод: Выделить всё
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <title>OpenLayers BLG</title>
  <script src="apps/openlayers-2.10/OpenLayers.js"></script>
      <script type="text/javascript">
function init(){
OpenLayers.ProxyHost = "proxy.cgi?url=";
				//Creation of a custom panel with a ZoomBox control with the alwaysZoom option sets to true				
				OpenLayers.Control.CustomNavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
	
				    /**
				     * Constructor: OpenLayers.Control.NavToolbar 
				     * Add our two mousedefaults controls.
				     *
				     * Parameters:
				     * options - {Object} An optional object whose properties will be used
				     *     to extend the control.
				     */
					
					
				    initialize: function(options) {
				        OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);
				        this.addControls([
				          new OpenLayers.Control.Navigation(),
						  //Here it come
				          new OpenLayers.Control.ZoomBox({alwaysZoom:true})
				        ]);
						// To make the custom navtoolbar use the regular navtoolbar style
						this.displayClass = 'olControlNavToolbar'
				    },
					
					
				
				    /**
				     * Method: draw 
				     * calls the default draw, and then activates mouse defaults.
				     */
				    draw: function() {
				        var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
                        this.defaultControl = this.controls[0];
				        return div;
				    }
				});
	
    function showInfo(e) {
       var popup = new OpenLayers.Popup.FramedCloud("popup",
                   map.getLonLatFromPixel(e.xy),
                   new OpenLayers.Size(120,120),
                   e.text='инфа об объекте',
                   null,
                   true
                );
       map.addPopup(popup);
    }	  
	
//  var bounds = new OpenLayers.Bounds (0.219579, 0.147636, 0.223491, 0.151293);
        var map = new OpenLayers.Map('map',{
    maxExtent: new OpenLayers.Bounds(0.21757899999961,0.147636,0.223491,0.151293),
   // maxExtent: new OpenLayers.Bounds(10.21757899999961,10.147636,10.223491,10.151293),
    maxResolution: 1,
    units: 'degrees',
    projection: "EPSG:4326"});
	  var wms1 = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'}, {isBaseLayer: true});
        var wms2 = new OpenLayers.Layer.WMS( "OpenLayers MapServer", "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/netw2/olblgnet1.map",{layers: 'Blag_network', visibility: true, transparent: true}, {opacity: .5});
        var water_ctrl = new OpenLayers.Control.WMSGetFeatureInfo({
	url: 'http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/netw2/olblgnet1.map',
	title: 'wms info',
	layers: [wms2 ],
	queryVisible: true
});
map.addLayers([wms1,wms2]);
//map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
water_ctrl.events.register('getfeatureinfo', this, showInfo);
map.addControl(water_ctrl);
water_ctrl.activate();
var panel = new OpenLayers.Control.CustomNavToolbar();
	            map.addControl(panel);
}
</script>
</head>
    <body onload="init()">
      <div style="width:80%; height:80%" id="map"></div>    
</body>
</html>

