Видимо избитая тема.., но столкнулся с проблемами, которые до сих пор не могу решить или просто не вижу решения.
Есть shp файлы, в которых нужная нам информация, есть map файл для WMS сервера на основе MapServer и в качестве вэб отображения OpenLayers. Ах да..., есть еще TileCache при помощи которого пытаюсь сделать тайловый вывод наших shp файлов.
Конфиги следующие:
map файл :
Код: Выделить всё
MAP
NAME "WMS"
STATUS ON
IMAGETYPE PNG
TRANSPARENT ON
OUTPUTFORMAT
NAME "png"
DRIVER "AGG/PNG"
MIMETYPE "image/png"
IMAGEMODE RGB
EXTENSION "png"
#FORMATOPTION "INTERLACE=OFF"
END
extent -180 -90 180 90
SIZE 1024 768
SHAPEPATH "/ms4w/shp/"
UNITS DD
IMAGECOLOR 255 255 255
WEB
#TEMPLATE './templates/template.html'
IMAGEPATH '/ms4w/tmp/ms_tmp/'
IMAGEURL '/ms_tmp/'
METADATA
wms_title "MapServ demo"
wms_abstract "This is the test"
wms_onlineresource "http://localhost/fcgi-bin/mapserv.exe?map=c:/ms4w/maps/layers.map"
wms_srs "ESPG:4326"
wms_getfeatureinfo "http://localhost/fcgi-bin/mapserv.exe?map=c:/ms4w/maps/layers.map"
wms_featureinfoformat "text/plain"
wms_format "image/png"
"ows_enable_request" "*"
END
END
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
#layer
# name fire
# PROCESSING "CLOSE_CONNECTION=DEFER"
# status default
# TYPE POLYGON
# TILEINDEX "/ms4w/shp/index.shp"
# TILEITEM "LOCATION"
#
# PROJECTION
# "proj=latlong"
# "ellps=WGS84"
# "datum=WGS84"
# END
# METADATA
# wms_title "fire"
# wms_abstract "fire test"
# wms_srs "ESPG:4326"
# END
#
#END
LAYER
NAME line1
DATA ISOLINES_20111010_0
STATUS ON
TYPE POLYGON
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
TRANSPARENCY 30
CLASS
NAME line1
STYLE
WIDTH 1
COLOR 0 255 0
ANTIALIAS true
END
END
METADATA
wms_title "line1"
wms_abstract "line1 test"
wms_srs "ESPG:4326"
#wms_include_items "all"
END
END # Конец определения слоя
LAYER
NAME line2
TYPE POLYGON
STATUS ON
DATA ISOLINES_20111010_1
TRANSPARENCY 30
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
CLASS
NAME Line2
STYLE
WIDTH 1
COLOR 123 245 18
END
END
METADATA
wms_title "line2"
wms_abstract "line2 test"
wms_srs "ESPG:4326"
END
END #Конец слоя
LAYER
NAME line3
TYPE POLYGON
STATUS ON
DATA ISOLINES_20111010_2
TRANSPARENCY 30
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
CLASS
NAME Line3
STYLE
WIDTH 1
COLOR 255 236 9
END
END
METADATA
wms_title "line3"
wms_abstract "line3 test"
wms_srs "ESPG:4326"
END
END #Конец слоя
LAYER
NAME line4
TYPE POLYGON
STATUS ON
DATA ISOLINES_20111010_3
TRANSPARENCY 30
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
CLASS
NAME Line4
STYLE
WIDTH 1
COLOR 253 107 4
END
END
METADATA
wms_title "line4"
wms_abstract "line4 test"
wms_srs "ESPG:4326"
END
END #Конец слоя
LAYER
NAME line5
TYPE POLYGON
STATUS ON
DATA ISOLINES_20111010_4
TRANSPARENCY 30
PROJECTION
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
CLASS
NAME Line5
STYLE
WIDTH 1
COLOR 255 0 0
END
END
METADATA
wms_title "line5"
wms_abstract "line5 test"
wms_srs "ESPG:4326"
END
END #Конец слоя
END
Код: Выделить всё
[cache]
type=Disk
base=C:/ms4w/tmp/tilecache
[line]
type=WMSLayer
layers = line1,line2,line3,line4,line5
srs=ESPG:4326
url=http://localhost/fcgi-bin/mapserv.exe?map=c:/ms4w/maps/layers.map
extension = png
size=256,256
bbox=-180.0,-90.0,180.0,90.0
debug=on
Код: Выделить всё
<HTML>
<HEAD>
<TITLE>Тестовые карты горимости</TITLE>
<title>OpenLayers Example</title>
<script src="OpenLayers.js"></script>
</HEAD>
<body>
<A HREF="http://localhost/virtual.html">Virtual Earth</A>
<div style="width:100%; height:100%" id="map"></div>
<script defer="defer" type="text/javascript">
var map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.OverviewMap());
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.LayerSwitcher());
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'});//, sphericalMercator : 'true'} );
var cLayer = new OpenLayers.Layer.WMS( "CacheLayer", "http://localhost/cgi-bin/tilecache/tilecache.cgi?", {transparent: 'true', layers: ['Fire'], format: 'png'});
var lms1 = new OpenLayers.Layer.WMS( "Fire 1", "http://localhost/fcgi-bin/mapserv.exe?map=/ms4w/maps/layers1.map", {transparent: 'true', layers: 'line1', format: 'png'});
var lms2 = new OpenLayers.Layer.WMS( "Fire 2", "http://localhost/fcgi-bin/mapserv.exe?map=/ms4w/maps/layers2.map", {transparent: 'true', layers: 'line2', format: 'png'});
var lms3 = new OpenLayers.Layer.WMS( "Fire 3", "http://localhost/fcgi-bin/mapserv.exe?map=/ms4w/maps/layers3.map", {transparent: 'true', layers: 'line3', format: 'png'});
var lms4 = new OpenLayers.Layer.WMS( "Fire 4", "http://maps.mapmakers.ru/fcgi-bin/mapserv.exe?map=/ms4w/maps/layers4.map", {transparent: 'true', layers: 'line4', format: 'png'});
var lms5 = new OpenLayers.Layer.WMS( "Fire 5", "http://localhost/fcgi-bin/mapserv.exe?map=/ms4w/maps/layers5.map", {transparent: 'true', layers: 'line5', format: 'png'});
//var WMS_C_Server = new OpenLayers.Layer.WMS("WMK WMS-C Server 0.1","http://localhost/wms-c.php",{layers: ['line1','line2','line3','line4','line5'], format: "PNG"});
//map.addLayers([wms, cLayer]);
map.addLayers([lms1, lms2, lms3, lms4, lms5, wms, cLayer]);
//map.addLayers([lms1, lms2, lms3, lms4, lms5, wms, WMS_C_Server]);
map.zoomToMaxExtent();
</script>
<script type="text/javascript">
var lon = 35;
var lat = 59;
var zoom = 7;
var map, layer;
function init(){
OpenLayers.DOTS_PER_INCH = 72;
var options = {
minResolution: "auto",
minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
maxResolution: "auto",
maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
controls: [new OpenLayers.Control.MouseDefaults()]
};
map = new OpenLayers.Map( 'map' , options);
map.addControl(new OpenLayers.Control.PanZoomBar());
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}
</script>
</body>
</HTML>
Во вложении то, что получается. Вопрос, что происходит не так? Материала перелопачено много