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>