На локальном сервере стоит MapServer, на нем крутится заготовка карты (сначала решил движок настроить, потом дорисовать). На клиенте используется OpenLayers.
Проблема: При просмотре с использованием OpenLayers слои карты не отображаются. То есть, похоже, что отображается, но как-то не так (то ли с маштабом что-то, то ли с границами) - просто белый экран и все. При этом вроде как работает масштабирование (что-то подгружается с сервера) и перетаскивание (судя по курсору).
А при просмотре напрямую с использованием MapServer'a все нормально (правда при первом открытии страницы тоже белое поле вместо карты, но после любого действия с ней карта появляется).
Кусок map-файла:
Код: Выделить всё
MAP
  NAME		"ugo"
  IMAGETYPE      GIF
  EXTENT	800.002504 -2001.252087 2001.002505 -1000.752921
  SIZE           600 500
  SHAPEPATH      "shp/"
  IMAGECOLOR     255 255 255
  fontset	"./fonts/fonts.list"
  WEB
    TEMPLATE  './templates/template5.html'
    IMAGEPATH '/var/www/ugo.su/map/'
    IMAGEURL  '/map/'
    
    METADATA
        wms_title "GIS-LAB Demo"
        wms_abstract "This is the WMS demo from GIS-Lab"
        wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?"
    END					
  END
	      
  PROJECTION
    "init=epsg:4326"
  END
  LAYER 
    NAME         sq
    DATA         squares
    STATUS       ON
    TYPE         POLYGON
    
    CLASS
      NAME       "sq"
      STYLE
        COLOR        200 210 230
        OUTLINECOLOR 32 32 32
      END
    END
    
    METADATA
        wms_title         "sq"
        wms_abstract      "squares"
        wms_srs           "EPSG:4326"
        wms_include_items "all"
    END
					
    
  PROJECTION
    "init=epsg:4326"
  END
  ENDКлиентский скрипт:
Код: Выделить всё
    <script
    src="http://openlayers.org/api/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
	var bounds = new OpenLayers.Bounds(799, -2000, 2000, -1000);
        var map = new OpenLayers.Map('map');
        var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://192.168.1.3/cgi-bin/mapserv?map=map/ugo.map&", {'map':'/usr/lib/cgi-bin/map/ugo.map','layers':'sq'} );
        map.addLayer(wms);
	map.zoomToExtent();
      </script>wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?"
изменил на
wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?map=map/ugo.map&"
Однако через OpenLayers не заработало.

 Это, можно сказать, пробная карта (небольшой набросок), поэтому единственное, что я там учитывал - размеры объектов в метрах более-менее соответствуют реальным (проверял с помощью встроенной в QGIS линейки). Все параметры, насколько я помню, остались по умолчанию, проекция в том числе.
  Это, можно сказать, пробная карта (небольшой набросок), поэтому единственное, что я там учитывал - размеры объектов в метрах более-менее соответствуют реальным (проверял с помощью встроенной в QGIS линейки). Все параметры, насколько я помню, остались по умолчанию, проекция в том числе.