Страница 1 из 1

MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 10:15
pilotza
Здравствуйте.
Видимо избитая тема.., но столкнулся с проблемами, которые до сих пор не могу решить или просто не вижу решения.

Есть 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
Теперь кофиг tilecache.cfg :

Код: Выделить всё

[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 :

Код: Выделить всё

<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>
Вместо localhost наш внутренний или внешний IP.
Во вложении то, что получается. Вопрос, что происходит не так? Материала перелопачено много

Re: MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 11:29
Максим Дубинин
так а что не так то припишите? что-то не показывается? проблема какая?

Re: MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 11:43
pilotza
Не показывает тайлы. Вместо тайлов розовые квадратики. ТО что вы видите на скрине вверху справа - это отрисовка моих слоев , но без тайлового вывода - рендеринг MapServer. Но это очень медленно..., а тайлов нет

Re: MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 12:08
Mavka
Розовый тайл - правой кнопкой - копировать адрес изображения - открываете новое окно в браузере - вставляете в строку адреса - получаете сообщение об ошибке

Дополнительно - см. логи apache

tilecache.cfg - type=WMS

Re: MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 12:11
pilotza
Спасибо, буду смотреть

Re: MApServer+TileCache+OpenLayers

Добавлено: 01 ноя 2011, 12:18
pilotza
Как говорится сам дурак. Обычная синтаксическая ошибка ESPG -EPSG - теперь все ок