OpenLayers与OpenLayers 3添加MapServer层

OpenLayers与OpenLayers 3添加MapServer层,openlayers,openlayers-3,mapserver,Openlayers,Openlayers 3,Mapserver,我希望这个问题的答案很简单,我只是有一些简单的不合适的东西 在OpenLayers 1中,我添加了这样一个层 msSection = new OpenLayers.Layer.MapServer("Section", MSBaseURL+"/MappingSection.map&", { layers: 'section', exceptions: "application/vnd.ogc.se_xml" }, { isBas

我希望这个问题的答案很简单,我只是有一些简单的不合适的东西

在OpenLayers 1中,我添加了这样一个层

 msSection = new OpenLayers.Layer.MapServer("Section",
          MSBaseURL+"/MappingSection.map&",
          { layers: 'section', exceptions: "application/vnd.ogc.se_xml" },
          { isBaseLayer: false, opacity: 0.9 },
          { tileSize: new OpenLayers.Size(256, 256), buffer: 1 });
        msSection.setVisibility(false);
MAP
IMAGETYPE      PNG24
CONFIG "PROJ_LIB" "C:/Program Files/MapServer/projlib/"
SIZE           256 256
FONTSET "D:/RCIS/Web/MapServerDlls/content/fontset.txt"
IMAGECOLOR     255 255 255
TRANSPARENT ON
PROJECTION 
    "init=epsg:4326"
END
LAYER
    NAME "section"
    TYPE POLYGON
    STATUS ON
    LABELCACHE ON 
    PROCESSING 'LABEL_NO_CLIP=1' 
    CONNECTIONTYPE PLUGIN
    PLUGIN "msplugin_mssql2008.dll"
    MAXGEOWIDTH .08
    CONNECTION "server=someserver,someport;uid=someuser;pwd=somepassword;Initial Catalog=NATIONALDB;Integrated Security=False"
    DATA "shape(geography),SECTION from NATIONALDB.sde.SECTION USING INDEX SECTION_SIDX USING UNIQUE SECTION_ID USING SRID=4269"
    LABELITEM    "SECTION"
    CLASS
        STYLE            
         OUTLINECOLOR 255 000 000
         WIDTH 3
        END
         LABEL
            COLOR 255 000 000
            TYPE TRUETYPE
            FONT Arial 
            SIZE 12
            ANTIALIAS TRUE
            POSITION CL
            PARTIALS FALSE
            #MINDISTANCE 300
            #BUFFER 15
        END
    END     
    PROJECTION 
         "init=epsg:4326"
    END
END

END
地图文件如下所示

 msSection = new OpenLayers.Layer.MapServer("Section",
          MSBaseURL+"/MappingSection.map&",
          { layers: 'section', exceptions: "application/vnd.ogc.se_xml" },
          { isBaseLayer: false, opacity: 0.9 },
          { tileSize: new OpenLayers.Size(256, 256), buffer: 1 });
        msSection.setVisibility(false);
MAP
IMAGETYPE      PNG24
CONFIG "PROJ_LIB" "C:/Program Files/MapServer/projlib/"
SIZE           256 256
FONTSET "D:/RCIS/Web/MapServerDlls/content/fontset.txt"
IMAGECOLOR     255 255 255
TRANSPARENT ON
PROJECTION 
    "init=epsg:4326"
END
LAYER
    NAME "section"
    TYPE POLYGON
    STATUS ON
    LABELCACHE ON 
    PROCESSING 'LABEL_NO_CLIP=1' 
    CONNECTIONTYPE PLUGIN
    PLUGIN "msplugin_mssql2008.dll"
    MAXGEOWIDTH .08
    CONNECTION "server=someserver,someport;uid=someuser;pwd=somepassword;Initial Catalog=NATIONALDB;Integrated Security=False"
    DATA "shape(geography),SECTION from NATIONALDB.sde.SECTION USING INDEX SECTION_SIDX USING UNIQUE SECTION_ID USING SRID=4269"
    LABELITEM    "SECTION"
    CLASS
        STYLE            
         OUTLINECOLOR 255 000 000
         WIDTH 3
        END
         LABEL
            COLOR 255 000 000
            TYPE TRUETYPE
            FONT Arial 
            SIZE 12
            ANTIALIAS TRUE
            POSITION CL
            PARTIALS FALSE
            #MINDISTANCE 300
            #BUFFER 15
        END
    END     
    PROJECTION 
         "init=epsg:4326"
    END
END

END
…一切都很快乐,一切正常。。。 我试着在OpenLayers 3中添加这个

var Section = new ol.layer.Tile({
            name: 'Section',
            source: new ol.source.TileWMS({
                url: 'http://localhost:8080/cgi-bin/mapserv.exe?map=D:/RCIS/Web/Mapfiles/MappingSection.map&',
                params: { 'LAYERS': 'section' },
                serverType: 'mapserver'
            })
        });

        control.map.addLayer(Section);
…它在chrome开发工具中显示代码200正常,但不起作用, 当我将返回的一个磁贴放入地址栏时,我得到了这个错误

<ServiceException>
msWMSDispatch(): WMS server error. WMS request not enabled. Check     wms/ows_enable_request settings.
</ServiceException>

msWMSDispatch():WMS服务器错误。WMS请求未启用。检查wms/ows\u启用\u请求设置。

我完全被这搞糊涂了,非常感谢您的帮助

OpenLayers.Layer.MapServer
使用来执行其请求,而不是WMS。由于MapServer支持WMS,因此不再使用CGI控件使用MapServer绘制地图图像

在OpenLayers 3中,您使用的格式是生成WMS请求的
ol.source.TileWMS
。如果检查发送的请求(请参见浏览器开发工具中使用F12键),您将看到发送用于渲染图像的请求是WMS请求,即它们不使用MapServer CGI控件


您需要做的是更改地图文件以使其支持WMS。看看这里是怎么做的:。更具体地说,请查看该部分。

OpenLayers.Layer.MapServer
使用来执行其请求,而不是WMS。由于MapServer支持WMS,因此不再使用CGI控件使用MapServer绘制地图图像

在OpenLayers 3中,您使用的格式是生成WMS请求的
ol.source.TileWMS
。如果检查发送的请求(请参见浏览器开发工具中使用F12键),您将看到发送用于渲染图像的请求是WMS请求,即它们不使用MapServer CGI控件


您需要做的是更改地图文件以使其支持WMS。看看这里是怎么做的:。更具体地说,请查看该部分。

谢谢!!我已经和这件事斗争太久了!!非常感谢。我已经和这件事斗争太久了!!