function InitMap( west, north, east, south, useGoogleMaps ) {

    var dHoriz = east - west;
    var dVert = north - south;

    if ((dHoriz/dVert) < (900/600)){
        dHoriz = dHoriz;
        dVert  = dVert * (600/900);
    }
    else {
        dHoriz = dHoriz * (900/600);
        dVert  = dVert;
    }

    west -= 100 * dHoriz;
    north += 100 * dVert;
    east += 100 * dHoriz;
    south -= 100 * dVert;

    var proj = "";
    var options = [];

    if (_isSpherMercProj){
        var proj = "EPSG:4326";
    }else {
        var proj = "EPSG:25832";
    }

    if (_isSpherMercProj) {
        if (west == 0 && east == 0)
        {
            options = {
                    div					: 'olMap',
                    projection 			:  proj,
                    projection          : new OpenLayers.Projection("EPSG:900913"),
                    displayProjection   : new OpenLayers.Projection("EPSG:4326"),
                    units               :'m'
                };
        }
        else
        {
            maxExtent = getProjBounds(west, north, east, south);
            options = {
                    div					: 'olMap',
                    projection          : new OpenLayers.Projection("EPSG:900913"),
                    displayProjection   : new OpenLayers.Projection("EPSG:4326"),
                    units               :'m',
                    maxExtent           : maxExtent,
                    numZoomLevels	: 18,
                    resolutions		: [2500,1000,500,250,100,50,40,30,20,10,5,2.5,1,0.5,0.25,0.1,0.05,0.02]
                };
        }
    }
    else if (west == 0 && east == 0)
    {
        options = {
                div					: 'olMap',
                projection 			:  proj,
                fractionalZoom 		: false,
                units               :'m',

                numZoomLevels		: 18,
                resolutions		: [2500,1000,500,250,100,50,40,30,20,10,5,2.5,1,0.5,0.25,0.1,0.05,0.02]
            };
    }
    else
    {
        west -= 250 * dHoriz;
        north += 250 * dVert;
        east += 250 * dHoriz;
        south -= 250 * dVert;

        options = {
                div					: 'olMap',
                projection 			:  proj,
                fractionalZoom 		: false,
                units               :'m',

                numZoomLevels		: 18,
                resolutions		: [2500,1000,500,250,100,50,40,30,20,10,5,2.5,1,0.5,0.25,0.1,0.05,0.02],
                maxExtent 		: new OpenLayers.Bounds(west,south,east,north)
            };
    }

	olKarte = new OpenLayers.Map("olMap", options );
		
	olKarte.addControl( new OpenLayers.Control.ScaleLine() );
    if (!useGoogleMaps){
        olKarte.addControl( new OpenLayers.Control.MousePosition({prefix: "UTM ",numDigits: 1, separator: ' - '}) );
    }else {
        olKarte.addControl( new OpenLayers.Control.MousePosition({separator: ' - '}) );
    }
	olKarte.addControl( new OpenLayers.Control.LayerSwitcher({title: "Ebenenkontrolle"}) );
	olKarte.addControl( new OpenLayers.Control.Graticule({numPoints: 10, labeled: true, visible: false, displayInLayerSwitcher: true, layerName: "Gradnetz"}) );
	
	if (useGoogleMaps)
	{
		var gphy = new OpenLayers.Layer.Google(
                "Google Gel&auml;nde",
                {   type               : G_PHYSICAL_MAP,
                    sphericalMercator  : true
                }
        );
        var gmap = new OpenLayers.Layer.Google(
                "Google Stra&szlig;enkarte",
                {   //type               : G_STREET_MAP,
                    sphericalMercator  : true
                }
        );
        var ghyb = new OpenLayers.Layer.Google(
                "Google Hybrid",
                {   type               : G_HYBRID_MAP,
                    sphericalMercator  : true
                }
        );
        var gsat = new OpenLayers.Layer.Google(
                "Google Satellit",
                {   type               : G_SATELLITE_MAP,
                    sphericalMercator  : true
                }
        );
        //var veAerial = new OpenLayers.Layer.VirtualEarth("Virtual Earth",
        //        {
        //            sphericalMercator: true,
        //            // turn off animated zooming
        //            animationEnabled: false,
        //            //minZoomLevel: 4,
        //            //maxZoomLevel: 6,
        //            'type': VEMapStyle.Aerial
        //        }
        //);
        //var veStreet = new OpenLayers.Layer.VirtualEarth("Virtual Earth",
        //        {
        //            sphericalMercator: true,
        //            // turn off animated zooming
        //            animationEnabled: false
        //            //minZoomLevel: 4,
        //            //maxZoomLevel: 6,
        //            //'type': VEMapStyle.Aerial
        //        }
        //);


        var osmMapnik = new OpenLayers.Layer.OSM("Mapnik" );

        var osm = new OpenLayers.Layer.OSM("OpenStreetMap" );

        var osmTH = new OpenLayers.Layer.OSM("Tiles@Home" );
        
        olKarte.addLayers([gsat, gphy, gmap, ghyb, osm/*, veAerial, veStreet*/]);
	}
	else
	{
		var uek = new OpenLayers.Layer.WMS("&Uuml;bersichtskarte Deutschland",
                                "http://wms.wheregroup.com/cgi-bin/mapserv", {map:'/data/umn/germany/germany.map', layers:'Topographie,Grenze,Bundeslaender,Staedte,Bahnlinien,Strassen,Fluesse,Staedtepunkte,Staedtenamen'}
                );
                
                var TK = new OpenLayers.Layer.WMS("lokale Mapserver Karte",
				"http://www.ribeka.com/cgi-bin/mapserv", {map: '../../gw-web/maps/5205.map', layers:'5205_karte'},
				{transitionEffect: 'resize'}
		);
		
		var GWGL1 = new OpenLayers.Layer.WMS("GW-Gleichen 04.2005",
				"http://www.ribeka.com/cgi-bin/mapserv", {map: '../../gw-web/maps/5205.map', layers:'gleichenplan_042005', transparent: 'true'}
		);
		
		var AGL1 = new OpenLayers.Layer.WMS("Nitrat-Gleichen 12.2005",
				"http://www.ribeka.com/cgi-bin/mapserv", {map: '../../gw-web/maps/5205.map', layers:'nitrat_122005', transparent: 'true'}
		);
		
		var tk25 = new OpenLayers.Layer.WMS("TK25 geoserver NRW",
                                 "http://www.wms.nrw.de/geobasis/adv_dtk25_grau", {layers: 'adv_dtk25_grau'}
                );
		
		var Luftbild = new OpenLayers.Layer.WMS("Luftbild geoserver NRW",
                                 "http://www.wms.nrw.de/geobasis/DOP_JPG", {layers: 'DOP_JPG'}
                );
		
        //olKarte.addLayers([WMS,tk25]);
        if (_useOSM){
            olKarte.addLayers([osm]);
        }
        else{
                uek.setVisibility(false);
                GWGL1.setVisibility(false);
		AGL1.setVisibility(false);
		olKarte.addLayers([tk25,Luftbild,TK,uek,GWGL1,AGL1]);
	}
        }
	return olKarte;
}


