Puneet, I would add that there is a lot of other metadata that you need to set on a map in order to get WxS services like WMS working. If you haven't done that either you are going to be frustrated.
I would suggest getting your script working initially with an actual mapfile and then if you really want to construct the map programmatically use that as a guide. Best regards, On Thu, Sep 8, 2011 at 11:15 AM, Armin Burger <[email protected]> wrote: > in PHP MapScript should be something like > $map->setMetaData("ows_enable_request", "*"); > > in Python: > map.setMetaData("ows_enable_request", "*") > > armin > > > On 08/09/2011 20:05, Mr. Puneet Kishor wrote: >> >> On Sep 8, 2011, at 1:03 PM, thomas bonfort wrote: >> >>> it goes in map->web->metadata >>> >> >> I guessed as much, but I can't fathom the syntax. The webObj doesn't seem >> to have any constructor, and I don't see any documentation. Could you please >> point me to an example? >> >> >> >>> >>> On Thu, Sep 8, 2011 at 19:48, Mr. Puneet Kishor<[email protected]> >>> wrote: >>>> >>>> a bit more investigation on producing a WMS response via Perl MapScript >>>> reveals the following error >>>> >>>> <?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?> >>>> <!DOCTYPE ServiceExceptionReport SYSTEM >>>> "http://schemas.opengis.net/wms/1.1.0/exception_1_1_0.dtd"> >>>> <ServiceExceptionReport version="1.1.0"> >>>> <ServiceException> >>>> msWMSDispatch(): WMS server error. WMS request not enabled. Check >>>> wms/ows_enable_request settings. >>>> </ServiceException> >>>> </ServiceExceptionReport> >>>> >>>> So, it seems I have to somehow, somewhere enable 'ows_enable_request'. >>>> Looking at the documentation, seems like if I had a map file, I could add >>>> the following line to do so >>>> >>>> ows_enable_request '*' >>>> >>>> However, I am not using a map file at all. Not finding any documentation >>>> on this setting, I tried the following to no avail >>>> >>>> $map->{ows_enable_request} = '*'; >>>> >>>> >>>> Suggestions, anyone? >>>> >>>> >>>> On Sep 7, 2011, at 10:18 PM, Mr. Puneet Kishor wrote: >>>> >>>>> I would really appreciate insight from someone well-versed in the ins >>>>> and outs of WMS via MapScript. Looking at the discussion at >>>>> [http://trac.osgeo.org/mapserver/ticket/670], the `img = wms_map.draw()` >>>>> step seems to be a crucial part of drawing the image. >>>>> >>>>> So, I added `my $img = $map->draw();` to my code below, and indeed, the >>>>> image was drawn and sent back to the browser. >>>>> >>>>> Is this something that should be added to the examples in the >>>>> documentation? Is this the right way to do things? In any case, I am not >>>>> write to STDOUT, and sending the buffer directly. Instead, my code is very >>>>> much like a regular request (and it works) -- >>>>> >>>>> my $new_extent = $map->{extent}; >>>>> >>>>> my $req = new mapscript::OWSRequest(); >>>>> $req->setParameter( "SERVICE", "WMS" ); >>>>> $req->setParameter( "VERSION", "1.1.0" ); >>>>> $req->setParameter( "REQUEST", "GetMap" ); >>>>> $req->setParameter( "BBOX", "-180,-90,180,90" ); >>>>> $req->setParameter( "LAYERS", "layer_name"); >>>>> $req->setParameter( "SRS", "-1"); >>>>> $req->setParameter( "WIDTH", "1200"); >>>>> $req->setParameter( "HEIGHT", "600"); >>>>> >>>>> my $dispatch_out = $map->OWSDispatch( $req ); >>>>> my $img = $map->draw(); >>>>> my $map_img = 'test_' . sprintf("%0.10d", rand(1000000000)) . >>>>> '.png'; >>>>> $img->save("/path/to/$map_img"); >>>>> return send_file("/path/to/$map_img"); >>>>> >>>>> >>>>> Comments? Corrections? >>>>> >>>>> >>>>> On Sep 7, 2011, at 6:12 PM, Mr. Puneet Kishor wrote: >>>>> >>>>>> >>>>>> On Sep 7, 2011, at 5:49 PM, Mr. Puneet Kishor wrote: >>>>>> >>>>>>> I am trying to convert my MapScript program to a WMS responder. I >>>>>>> create my $map where I set all the layers and classes and colors, etc, >>>>>>> just >>>>>>> like for a normal, non-WMS request that works perfectly correctly. >>>>>>> >>>>>>> my $map = undef; >>>>>>> $map = mapObj(name => 'mymap') unless defined $map; >>>>>>> >>>>>>> my $req = new mapscript::OWSRequest(); >>>>>>> $req->setParameter( "SERVICE", "WMS" ); >>>>>>> $req->setParameter( "VERSION", "1.1.0" ); >>>>>>> $req->setParameter( "REQUEST", "GetCapabilities" ); >>>>>> >>>>>> I changed the above line to >>>>>> >>>>>> $req->setParameter( "REQUEST", "GetMap"); >>>>>> >>>>>> but, still no improvement. >>>>>> >>>>>> >>>>>>> >>>>>>> mapscript::msIO_installStdoutToBuffer(); >>>>>>> my $dispatch_out = $map->OWSDispatch( $req ); >>>>>>> printf "%s\n", mapscript::msIO_getStdoutBufferString(); >>>>>>> >>>>>>> Except, the above doesn't really do anything for me. I get nothing in >>>>>>> my browser. Suggestions? >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Puneet Kishor >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> mapserver-users mailing list >>>> [email protected] >>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users >>>> >> >> _______________________________________________ >> mapserver-users mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/mapserver-users >> > _______________________________________________ > mapserver-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapserver-users > -- ---------------------------------------+-------------------------------------- I set the clouds in motion - turn up | Frank Warmerdam, [email protected] light and sound - activate the windows | http://pobox.com/~warmerdam and watch the world go round - Rush | Geospatial Software Developer _______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
