RE: [mapserver-users] MapScript WMS request
DNS issue, should be fixed by Monday... ; (' -Original Message- From: Mr. Puneet Kishor [mailto:punk.k...@gmail.com] Sent: Friday, September 09, 2011 10:00 AM To: Fawcett, David (MPCA) Cc: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] MapScript WMS request David, On Sep 9, 2011, at 9:47 AM, Fawcett, David (MPCA) wrote: > Puneet, > > Using MapServer CGI and layer.MapServer would not set you up well for other > client libraries, so I see your point. It can be viable though. > > In this app (just an imagemap, not OL), there are no attribute values > associated with the spatial data. The classes are generated on-the-fly and > the county id's for each class are passed in as URL vars. Same thing for the > legend. This allows flexibility for compounds who's emissions may vary from > tens of pounds to millions of pounds. > > This approach may not work for your case, but it is another way to slice it... Possibly. See, it is crucially important for me to be able to generate classes on the fly, and with a lot of flexibility. Not just that, the criteria for generating the classes can change. So, what I am doing actually is setting up a separate application that does nothing but respond with class information. The mapping application (and, any other application, for that matter), would query this class generating application and make the classes as per the latest information. Hence, my need for MapScripting. Well, there are other reasons as well, but this is an important one. > > http://www.pca.state.mn.us/index.php/topics/environmental-data/eda-environmental-data-access/eda-air-quality-searches/eda-air-quality-search-emissions-by-county-data.html By the way, the app above is not working. I get broken images, and the following errors in the web inspector (that might help you troubleshoot) GET http://www.pca.state.mn.us/oea/css/master.css 404 (Not Found) emissions.cfm:28 ReferenceError: Can't find variable: urchinTracker GET http://maps.pca.state.mn.us/cgi-bin/mapserv? ..snipped.. A server with the specified hostname could not be found. GET http://maps.pca.state.mn.us/cgi-bin/mapserv? ..snipped.. A server with the specified hostname could not be found. GET http://cf.pca.state.mn.us/data/edaAir/artwork/edaP2results_edaAmbientResultsPollutantsJuly_04.gif 404 (Not Found) master-print.cssGET http://www.pca.state.mn.us/oea/css/master-print.css 404 (Not Found) > > David. > > -Original Message- > From: mapserver-users-boun...@lists.osgeo.org > [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet > Kishor > Sent: Friday, September 09, 2011 9:35 AM > To: mapserver-users@lists.osgeo.org > Subject: Re: [mapserver-users] MapScript WMS request > > > On Sep 9, 2011, at 8:39 AM, Fawcett, David (MPCA) wrote: > >> Puneet, >> >> As far as I know, OpenLayers still has support for a layer based on >> MapServer CGI. Because MapServer can also serve up WMS well, this layer >> type isn't necessarily recommended or as well supported. >> >> http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html > > > > Indeed David. Because, going by the docs, the MapServer CGI calls are > discouraged (or so it seems), I'd rather not invest in that path. This is a > long term project that I am working on, so the foundations have to be very > robust. Besides, I may or may not use OL. While I like OL a lot, I am also > looking at other frameworks (Gmaps, Leaflet, Polymaps), and it would be wise > to decouple the backend from the front-end as much as possible. > > I have no issues with using WMS, but I just am unable to get MapServer WMS to > work via MapScript. And, yes, I do have to use MapScript if I can help it -- > my layer classification is generated on demand, and MapScript is the easiest > way I can think of for doing that. > > I did find yesterday that `mode=tile` works really well, but I am trying to > make that work with MapScript. A separate email thread for that question. > > > > >> >> David. >> >> -Original Message- >> From: mapserver-users-boun...@lists.osgeo.org >> [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet >> Kishor >> Sent: Thursday, September 08, 2011 9:32 PM >> To: Daniel Morissette >> Cc: mapserver-users@lists.osgeo.org >> Subject: Re: [mapserver-users] MapScript WMS request >> >> >> On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: >> >>> On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: > > Maybe call $map->save("/tmp/my.map") in your script after the map and > layer have been populated and paste the result... that may give us a > hint... > wow! this is a super-awesome debugging technique. I have sent you the map file off list to not pollute the entire list serve. >>> >>> I was able to reproduce the issue with the copy of the
Re: [mapserver-users] MapScript WMS request
David, On Sep 9, 2011, at 9:47 AM, Fawcett, David (MPCA) wrote: > Puneet, > > Using MapServer CGI and layer.MapServer would not set you up well for other > client libraries, so I see your point. It can be viable though. > > In this app (just an imagemap, not OL), there are no attribute values > associated with the spatial data. The classes are generated on-the-fly and > the county id's for each class are passed in as URL vars. Same thing for the > legend. This allows flexibility for compounds who's emissions may vary from > tens of pounds to millions of pounds. > > This approach may not work for your case, but it is another way to slice it... Possibly. See, it is crucially important for me to be able to generate classes on the fly, and with a lot of flexibility. Not just that, the criteria for generating the classes can change. So, what I am doing actually is setting up a separate application that does nothing but respond with class information. The mapping application (and, any other application, for that matter), would query this class generating application and make the classes as per the latest information. Hence, my need for MapScripting. Well, there are other reasons as well, but this is an important one. > > http://www.pca.state.mn.us/index.php/topics/environmental-data/eda-environmental-data-access/eda-air-quality-searches/eda-air-quality-search-emissions-by-county-data.html By the way, the app above is not working. I get broken images, and the following errors in the web inspector (that might help you troubleshoot) GET http://www.pca.state.mn.us/oea/css/master.css 404 (Not Found) emissions.cfm:28 ReferenceError: Can't find variable: urchinTracker GET http://maps.pca.state.mn.us/cgi-bin/mapserv? ..snipped.. A server with the specified hostname could not be found. GET http://maps.pca.state.mn.us/cgi-bin/mapserv? ..snipped.. A server with the specified hostname could not be found. GET http://cf.pca.state.mn.us/data/edaAir/artwork/edaP2results_edaAmbientResultsPollutantsJuly_04.gif 404 (Not Found) master-print.cssGET http://www.pca.state.mn.us/oea/css/master-print.css 404 (Not Found) > > David. > > -Original Message- > From: mapserver-users-boun...@lists.osgeo.org > [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet > Kishor > Sent: Friday, September 09, 2011 9:35 AM > To: mapserver-users@lists.osgeo.org > Subject: Re: [mapserver-users] MapScript WMS request > > > On Sep 9, 2011, at 8:39 AM, Fawcett, David (MPCA) wrote: > >> Puneet, >> >> As far as I know, OpenLayers still has support for a layer based on >> MapServer CGI. Because MapServer can also serve up WMS well, this layer >> type isn't necessarily recommended or as well supported. >> >> http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html > > > > Indeed David. Because, going by the docs, the MapServer CGI calls are > discouraged (or so it seems), I'd rather not invest in that path. This is a > long term project that I am working on, so the foundations have to be very > robust. Besides, I may or may not use OL. While I like OL a lot, I am also > looking at other frameworks (Gmaps, Leaflet, Polymaps), and it would be wise > to decouple the backend from the front-end as much as possible. > > I have no issues with using WMS, but I just am unable to get MapServer WMS to > work via MapScript. And, yes, I do have to use MapScript if I can help it -- > my layer classification is generated on demand, and MapScript is the easiest > way I can think of for doing that. > > I did find yesterday that `mode=tile` works really well, but I am trying to > make that work with MapScript. A separate email thread for that question. > > > > >> >> David. >> >> -Original Message- >> From: mapserver-users-boun...@lists.osgeo.org >> [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet >> Kishor >> Sent: Thursday, September 08, 2011 9:32 PM >> To: Daniel Morissette >> Cc: mapserver-users@lists.osgeo.org >> Subject: Re: [mapserver-users] MapScript WMS request >> >> >> On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: >> >>> On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: > > Maybe call $map->save("/tmp/my.map") in your script after the map and > layer have been populated and paste the result... that may give us a > hint... > wow! this is a super-awesome debugging technique. I have sent you the map file off list to not pollute the entire list serve. >>> >>> I was able to reproduce the issue with the copy of the mapfile you sent >>> off-list. >>> >>> It turns out that mappostgis.c's msPostGISLayerGetExtent() is hardcoded to >>> always return >>> >>> {minx = -2500, miny = -2500, maxx = 2500, maxy = 2500} >>> >>> ...and then it returns MS_SUCCESS. >>> >>> I think this functi
RE: [mapserver-users] MapScript WMS request
Puneet, Using MapServer CGI and layer.MapServer would not set you up well for other client libraries, so I see your point. It can be viable though. In this app (just an imagemap, not OL), there are no attribute values associated with the spatial data. The classes are generated on-the-fly and the county id's for each class are passed in as URL vars. Same thing for the legend. This allows flexibility for compounds who's emissions may vary from tens of pounds to millions of pounds. This approach may not work for your case, but it is another way to slice it... http://www.pca.state.mn.us/index.php/topics/environmental-data/eda-environmental-data-access/eda-air-quality-searches/eda-air-quality-search-emissions-by-county-data.html David. -Original Message- From: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet Kishor Sent: Friday, September 09, 2011 9:35 AM To: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] MapScript WMS request On Sep 9, 2011, at 8:39 AM, Fawcett, David (MPCA) wrote: > Puneet, > > As far as I know, OpenLayers still has support for a layer based on MapServer > CGI. Because MapServer can also serve up WMS well, this layer type isn't > necessarily recommended or as well supported. > > http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html Indeed David. Because, going by the docs, the MapServer CGI calls are discouraged (or so it seems), I'd rather not invest in that path. This is a long term project that I am working on, so the foundations have to be very robust. Besides, I may or may not use OL. While I like OL a lot, I am also looking at other frameworks (Gmaps, Leaflet, Polymaps), and it would be wise to decouple the backend from the front-end as much as possible. I have no issues with using WMS, but I just am unable to get MapServer WMS to work via MapScript. And, yes, I do have to use MapScript if I can help it -- my layer classification is generated on demand, and MapScript is the easiest way I can think of for doing that. I did find yesterday that `mode=tile` works really well, but I am trying to make that work with MapScript. A separate email thread for that question. > > David. > > -Original Message- > From: mapserver-users-boun...@lists.osgeo.org > [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet > Kishor > Sent: Thursday, September 08, 2011 9:32 PM > To: Daniel Morissette > Cc: mapserver-users@lists.osgeo.org > Subject: Re: [mapserver-users] MapScript WMS request > > > On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: > >> On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: >>> >>> On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: Maybe call $map->save("/tmp/my.map") in your script after the map and layer have been populated and paste the result... that may give us a hint... >>> >>> wow! this is a super-awesome debugging technique. I have sent you the map >>> file off list to not pollute the entire list serve. >>> >> >> I was able to reproduce the issue with the copy of the mapfile you sent >> off-list. >> >> It turns out that mappostgis.c's msPostGISLayerGetExtent() is hardcoded to >> always return >> >> {minx = -2500, miny = -2500, maxx = 2500, maxy = 2500} >> >> ...and then it returns MS_SUCCESS. >> >> I think this function should either be left unimplemented (this way >> MapServer would fallback on other mechanisms), or return MS_FAILURE to >> indicate to the calling code that it didn't do anything useful. >> >> A quick search indicates an open ticket about the issue: >> >> http://trac.osgeo.org/mapserver/ticket/3585 >> >> You could bump the ticket and hope someone works on it at the FOSS4G code >> sprint next week. >> >> The short term fix for you would be to set the "ows_extent" metadata in your >> layer: >> >> METADATA >> "ows_extent" "-180 -90 180 90" >> ... >> END >> > > > Thanks Daniel. I will bump the ticket. For now, see below -- > > Using the "my.map" file I sent you, with no further modifications to it, I am > able to successfully get an image back via > [http://localhost.local/cgi-bin/gmna?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=1200&HEIGHT=600&LAYERS=gmna&STYLES=&FORMAT=image/png&TRANSPARENT=true] > > Note, no further modifications is required, that is, not even the > "ows_extent" "-180 -90 180 90" bit in the layer METADATA. and I still get a > good image. > > > However, if I use the following program to access the same map file, I get > the spurious "minx = -2500, miny = -2500, maxx = 2500, maxy = > 2500" in the GetCapabilities. > > Finally, if I add the "ows_extent" "-180 -90 180 90" line in the layer > METADATA in the "my.map" file, the GetCapabilities returns the correct bounds > now, however, the image is still blank. > > #!/op
[mapserver-users] Use EXTENT to crop an image within a map file
Is it possible to only use a subset of an image that is referenced in a mapfile? In the mapfile below there are two FAA sectional charts. There are borders on the charts that I don't want on the final composite image. If the "EXTENT" actually clipped the image before rendering, I could get what I'm looking for, but it only seems to be used to determine overlap with the bounds of the output image (and not always then). I'm sure I could use something like gdal_translate to preprocess all of the charts, but that a really tedious sort of task and results in extra images lying around. Would prefer to use source images and have the mapfile pull the correct bits out of them. The charts are available at: http://aeronav.faa.gov/index.asp?xml=aeronav/applications/VFR/chartlist_sect Xander # # MapServer map file for FAA Sectional Raster charts (test case w/ only two charts) # MAP NAME "FAA Sectional Raster" IMAGETYPE PNG SIZE 256 256 DEBUG OFF UNITS DD SHAPEPATH "/MapData/FAA/SectionalRaster" PROJECTION "init=epsg:4269" END WEB METADATA "wms_srs" "EPSG:900913 EPSG:4326" "ows_enable_request" "*" END END LAYER NAME "LA North" DATA "Los Angeles 89 North.tif" STATUS ON TYPE RASTER DUMP TRUE PROJECTION "auto" END END LAYER NAME "LA South" DATA "Los Angeles 89 South.tif" STATUS ON TYPE RASTER DUMP TRUE PROJECTION "+proj=lcc +lat_1=38.7 +lat_2=33.3 +lat_0=34.16667 +lon_0=-118.5" END EXTENT -122 32 -119 34 END END END ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
Re: [mapserver-users] MapScript WMS request
On Sep 9, 2011, at 8:39 AM, Fawcett, David (MPCA) wrote: > Puneet, > > As far as I know, OpenLayers still has support for a layer based on MapServer > CGI. Because MapServer can also serve up WMS well, this layer type isn't > necessarily recommended or as well supported. > > http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html Indeed David. Because, going by the docs, the MapServer CGI calls are discouraged (or so it seems), I'd rather not invest in that path. This is a long term project that I am working on, so the foundations have to be very robust. Besides, I may or may not use OL. While I like OL a lot, I am also looking at other frameworks (Gmaps, Leaflet, Polymaps), and it would be wise to decouple the backend from the front-end as much as possible. I have no issues with using WMS, but I just am unable to get MapServer WMS to work via MapScript. And, yes, I do have to use MapScript if I can help it -- my layer classification is generated on demand, and MapScript is the easiest way I can think of for doing that. I did find yesterday that `mode=tile` works really well, but I am trying to make that work with MapScript. A separate email thread for that question. > > David. > > -Original Message- > From: mapserver-users-boun...@lists.osgeo.org > [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet > Kishor > Sent: Thursday, September 08, 2011 9:32 PM > To: Daniel Morissette > Cc: mapserver-users@lists.osgeo.org > Subject: Re: [mapserver-users] MapScript WMS request > > > On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: > >> On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: >>> >>> On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: Maybe call $map->save("/tmp/my.map") in your script after the map and layer have been populated and paste the result... that may give us a hint... >>> >>> wow! this is a super-awesome debugging technique. I have sent you the map >>> file off list to not pollute the entire list serve. >>> >> >> I was able to reproduce the issue with the copy of the mapfile you sent >> off-list. >> >> It turns out that mappostgis.c's msPostGISLayerGetExtent() is hardcoded to >> always return >> >> {minx = -2500, miny = -2500, maxx = 2500, maxy = 2500} >> >> ...and then it returns MS_SUCCESS. >> >> I think this function should either be left unimplemented (this way >> MapServer would fallback on other mechanisms), or return MS_FAILURE to >> indicate to the calling code that it didn't do anything useful. >> >> A quick search indicates an open ticket about the issue: >> >> http://trac.osgeo.org/mapserver/ticket/3585 >> >> You could bump the ticket and hope someone works on it at the FOSS4G code >> sprint next week. >> >> The short term fix for you would be to set the "ows_extent" metadata in your >> layer: >> >> METADATA >> "ows_extent" "-180 -90 180 90" >> ... >> END >> > > > Thanks Daniel. I will bump the ticket. For now, see below -- > > Using the "my.map" file I sent you, with no further modifications to it, I am > able to successfully get an image back via > [http://localhost.local/cgi-bin/gmna?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=1200&HEIGHT=600&LAYERS=gmna&STYLES=&FORMAT=image/png&TRANSPARENT=true] > > Note, no further modifications is required, that is, not even the > "ows_extent" "-180 -90 180 90" bit in the layer METADATA. and I still get a > good image. > > > However, if I use the following program to access the same map file, I get > the spurious "minx = -2500, miny = -2500, maxx = 2500, maxy = > 2500" in the GetCapabilities. > > Finally, if I add the "ows_extent" "-180 -90 180 90" line in the layer > METADATA in the "my.map" file, the GetCapabilities returns the correct bounds > now, however, the image is still blank. > > #!/opt/local/bin/perl > > use strict; > use mapscript; > > my $wms = new mapscript::OWSRequest(); > $wms->setParameter("SERVICE", "WMS" ); > $wms->setParameter("VERSION", "1.1.1" ); > $wms->setParameter("REQUEST", "GetMap" ); > $wms->setParameter("BBOX", "-180,-90,180,90" ); > $wms->setParameter("LAYERS", "gmna"); > $wms->setParameter("SRS", "EPSG:4326"); > $wms->setParameter("WIDTH", "1200"); > $wms->setParameter("HEIGHT", "600"); > $wms->setParameter("FORMAT", "image/png"); > $wms->setParameter("TRANSPARENT", "true"); > > my $map = new > mapscript::mapObj("/Users/punkish/Sites/test/mapscript/my.map"); > > if(!$map) { > warn "New mapObj() error: $mapscript::ms_error->{message}\n"; > } > > my $io = mapscript::msIO_installStdoutToBuffer(); > my $dispatch_out = $map->OWSDispatch( $wms ); > printf "%s\n", mapscript::msIO_getStdoutBufferString(); > > I have now spent an eno
Re: [mapserver-users] MapScript WMS request
I use this type of OpenLayers layer (OpenLayers.Layer.MapServer) all the time and it works great. As an old school cgi user, I find the MapServer interface more flexible than the WMS one. Mike -- Michael Smith Remote Sensing/GIS Center US Army Corps of Engineers On 9/9/11 9:39 AM, "Fawcett, David (MPCA)" wrote: >Puneet, > >As far as I know, OpenLayers still has support for a layer based on >MapServer CGI. Because MapServer can also serve up WMS well, this layer >type isn't necessarily recommended or as well supported. > >http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html > >David. > >-Original Message- >From: mapserver-users-boun...@lists.osgeo.org >[mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet >Kishor >Sent: Thursday, September 08, 2011 9:32 PM >To: Daniel Morissette >Cc: mapserver-users@lists.osgeo.org >Subject: Re: [mapserver-users] MapScript WMS request > > >On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: > >> On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: >>> >>> On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: Maybe call $map->save("/tmp/my.map") in your script after the map and layer have been populated and paste the result... that may give us a hint... >>> >>> wow! this is a super-awesome debugging technique. I have sent you the >>>map file off list to not pollute the entire list serve. >>> >> >> I was able to reproduce the issue with the copy of the mapfile you sent >>off-list. >> >> It turns out that mappostgis.c's msPostGISLayerGetExtent() is hardcoded >>to always return >> >> {minx = -2500, miny = -2500, maxx = 2500, maxy = 2500} >> >> ...and then it returns MS_SUCCESS. >> >> I think this function should either be left unimplemented (this way >>MapServer would fallback on other mechanisms), or return MS_FAILURE to >>indicate to the calling code that it didn't do anything useful. >> >> A quick search indicates an open ticket about the issue: >> >> http://trac.osgeo.org/mapserver/ticket/3585 >> >> You could bump the ticket and hope someone works on it at the FOSS4G >>code sprint next week. >> >> The short term fix for you would be to set the "ows_extent" metadata in >>your layer: >> >>METADATA >> "ows_extent" "-180 -90 180 90" >> ... >>END >> > > >Thanks Daniel. I will bump the ticket. For now, see below -- > >Using the "my.map" file I sent you, with no further modifications to it, >I am able to successfully get an image back via >[http://localhost.local/cgi-bin/gmna?SERVICE=WMS&VERSION=1.1.1&REQUEST=Get >Map&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=1200&HEIGHT=600&LAYERS=gmna&S >TYLES=&FORMAT=image/png&TRANSPARENT=true] > >Note, no further modifications is required, that is, not even the >"ows_extent" "-180 -90 180 90" bit in the layer METADATA. and I still get >a good image. > > >However, if I use the following program to access the same map file, I >get the spurious "minx = -2500, miny = -2500, maxx = 2500, >maxy = 2500" in the GetCapabilities. > >Finally, if I add the "ows_extent" "-180 -90 180 90" line in the layer >METADATA in the "my.map" file, the GetCapabilities returns the correct >bounds now, however, the image is still blank. > > #!/opt/local/bin/perl > > use strict; > use mapscript; > > my $wms = new mapscript::OWSRequest(); > $wms->setParameter("SERVICE", "WMS" ); > $wms->setParameter("VERSION", "1.1.1" ); > $wms->setParameter("REQUEST", "GetMap" ); > $wms->setParameter("BBOX", "-180,-90,180,90" ); > $wms->setParameter("LAYERS", "gmna"); > $wms->setParameter("SRS", "EPSG:4326"); > $wms->setParameter("WIDTH", "1200"); > $wms->setParameter("HEIGHT", "600"); > $wms->setParameter("FORMAT", "image/png"); > $wms->setParameter("TRANSPARENT", "true"); > > my $map = new >mapscript::mapObj("/Users/punkish/Sites/test/mapscript/my.map"); > > if(!$map) { > warn "New mapObj() error: $mapscript::ms_error->{message}\n"; > } > > my $io = mapscript::msIO_installStdoutToBuffer(); > my $dispatch_out = $map->OWSDispatch( $wms ); > printf "%s\n", mapscript::msIO_getStdoutBufferString(); > >I have now spent an enormous amount of time on this, and for now, I have >to move on. This is just not working out. Maybe I will try some other >technique, perhaps this mode=tile to see if I can get MapServer powered >maps in my apps. > >Thanks much for your help. If you (or anyone else) can come up with a >bright idea, I will be happy to try it. > >Puneet. > >___ >mapserver-users mailing list >mapserver-users@lists.osgeo.org >http://lists.osgeo.org/mailman/listinfo/mapserver-users > > >___ >mapserver-users mailing list >mapserver-users@lists.osgeo.org >http://lists.osgeo.org/mailman/listinfo/mapserver-use
RE: [mapserver-users] MapScript WMS request
Puneet, As far as I know, OpenLayers still has support for a layer based on MapServer CGI. Because MapServer can also serve up WMS well, this layer type isn't necessarily recommended or as well supported. http://dev.openlayers.org/docs/files/OpenLayers/Layer/MapServer-js.html David. -Original Message- From: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Mr. Puneet Kishor Sent: Thursday, September 08, 2011 9:32 PM To: Daniel Morissette Cc: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] MapScript WMS request On Sep 8, 2011, at 8:28 PM, Daniel Morissette wrote: > On 11-09-08 09:02 PM, Mr. Puneet Kishor wrote: >> >> On Sep 8, 2011, at 7:43 PM, Daniel Morissette wrote: >>> >>> Maybe call $map->save("/tmp/my.map") in your script after the map and layer >>> have been populated and paste the result... that may give us a hint... >>> >> >> wow! this is a super-awesome debugging technique. I have sent you the map >> file off list to not pollute the entire list serve. >> > > I was able to reproduce the issue with the copy of the mapfile you sent > off-list. > > It turns out that mappostgis.c's msPostGISLayerGetExtent() is hardcoded to > always return > > {minx = -2500, miny = -2500, maxx = 2500, maxy = 2500} > > ...and then it returns MS_SUCCESS. > > I think this function should either be left unimplemented (this way MapServer > would fallback on other mechanisms), or return MS_FAILURE to indicate to the > calling code that it didn't do anything useful. > > A quick search indicates an open ticket about the issue: > > http://trac.osgeo.org/mapserver/ticket/3585 > > You could bump the ticket and hope someone works on it at the FOSS4G code > sprint next week. > > The short term fix for you would be to set the "ows_extent" metadata in your > layer: > >METADATA > "ows_extent" "-180 -90 180 90" > ... >END > Thanks Daniel. I will bump the ticket. For now, see below -- Using the "my.map" file I sent you, with no further modifications to it, I am able to successfully get an image back via [http://localhost.local/cgi-bin/gmna?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=1200&HEIGHT=600&LAYERS=gmna&STYLES=&FORMAT=image/png&TRANSPARENT=true] Note, no further modifications is required, that is, not even the "ows_extent" "-180 -90 180 90" bit in the layer METADATA. and I still get a good image. However, if I use the following program to access the same map file, I get the spurious "minx = -2500, miny = -2500, maxx = 2500, maxy = 2500" in the GetCapabilities. Finally, if I add the "ows_extent" "-180 -90 180 90" line in the layer METADATA in the "my.map" file, the GetCapabilities returns the correct bounds now, however, the image is still blank. #!/opt/local/bin/perl use strict; use mapscript; my $wms = new mapscript::OWSRequest(); $wms->setParameter("SERVICE", "WMS" ); $wms->setParameter("VERSION", "1.1.1" ); $wms->setParameter("REQUEST", "GetMap" ); $wms->setParameter("BBOX", "-180,-90,180,90" ); $wms->setParameter("LAYERS", "gmna"); $wms->setParameter("SRS", "EPSG:4326"); $wms->setParameter("WIDTH", "1200"); $wms->setParameter("HEIGHT", "600"); $wms->setParameter("FORMAT", "image/png"); $wms->setParameter("TRANSPARENT", "true"); my $map = new mapscript::mapObj("/Users/punkish/Sites/test/mapscript/my.map"); if(!$map) { warn "New mapObj() error: $mapscript::ms_error->{message}\n"; } my $io = mapscript::msIO_installStdoutToBuffer(); my $dispatch_out = $map->OWSDispatch( $wms ); printf "%s\n", mapscript::msIO_getStdoutBufferString(); I have now spent an enormous amount of time on this, and for now, I have to move on. This is just not working out. Maybe I will try some other technique, perhaps this mode=tile to see if I can get MapServer powered maps in my apps. Thanks much for your help. If you (or anyone else) can come up with a bright idea, I will be happy to try it. Puneet. ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
[mapserver-users] proj4js and Azimuthal Equidistant projection
Нi! Sorry for my bad English. I use proj4js library in my web project. I have a problem with the use of method transform the library. Proj4js.defs["AEQP"] = "+proj=aeqd +lat_0=50 +lon_0=105 +ellps=WGS84 +datum=WGS84 +zone=36 +units=m +north +no_defs"; Proj4js.defs["EPSG:4236"] = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"; var aeqp = new Proj4js.Proj("AEQP"); var wgs = new Proj4js.Proj("EPSG:4236"); var p = new Proj4js.Point(-3601412.8999, 2529733.63814); Proj4js.transform(aeqp , wgs, p); Point "p" have values x=37.4703 and y 55.6884 after Proj4js.transform If I use SWING library of mapscript for .Net (method pointObj.project()) with same values of point ( x=-3601412.8999 and y= 2529733.63814 ) the method pointObj.project() return point with values x=37.60263 and y=55.72719. The difference in the values of a few minutes! For Example: 37.4703 = 37grad and 28 min and 37.60263 = 37grad and 36 min Please help solve this problem. Maybe proj4js contains errors for Azimuthal Equidistant projection? Are there any library similar to Proj4js? ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
Re: [mapserver-users] getFeatureInfo html with special characters indatasource
hello Arne, Am 09.09.2011 13:25, schrieb Arnd Wippermann: Hi, Perhaps you can use [yourFIELD_raw]. It shouldn't encode HTML. http://mapserver.org/mapfile/template.html [attribute name],[attrribute name_esc],[attribute item name_raw] this works fine, thanks! Jörg Or you can use javascript in your templates to solve this var ret = "[yourFIELD]".split(" ").join("
"); document.write(ret); Arnd -Ursprüngliche Nachricht- Von: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] Im Auftrag von Jörg Thomsen Gesendet: Freitag, 9. September 2011 12:01 An: mapserver-users@lists.osgeo.org Betreff: [mapserver-users] getFeatureInfo html with special characters indatasource hi, I'd like to get a html-feature-info like Niedersachsen 167 I get both, 'Niedersachsen' and '167' from the same table-column of the database and I need the line break between them. When I use 'Niedersachsen167' in the Atrributes, mapserver changes the brackets into the html-entities and i get 'Niedersachsen
167' which is shown as 'Niedersachsen167' in the browser-window. Are there any special-characters I can use in the database or is there an other solution? Jörg ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users -- ~~~ Aufwind durch Wissen! Qualifizierte Open Source Schulungen bei der http://www.foss-akademie.de/ ~~~ _ MapMedia Kartographie und raumbezogene Informationssysteme Gillweg 3, 14193 Berlin fon: +49 30 89 06 82-70 fax: +49 30 89 09 53-21 mail: j...@mapmedia.de net: www.mapmedia.de _ Geschäftsführer: G. v. Tschirnhaus, J. Thomsen, P. Stamm Registergericht, Berlin - Amtsgericht Charlottenburg, HRB 89625, Umsatzsteuer-Identnummer: DE 813794062 ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
AW: [mapserver-users] getFeatureInfo html with special characters indatasource
Hi, Perhaps you can use [yourFIELD_raw]. It shouldn't encode HTML. http://mapserver.org/mapfile/template.html [attribute name],[attrribute name_esc],[attribute item name_raw] Or you can use javascript in your templates to solve this var ret = "[yourFIELD]".split(" ").join("
"); document.write(ret); Arnd -Ursprüngliche Nachricht- Von: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] Im Auftrag von Jörg Thomsen Gesendet: Freitag, 9. September 2011 12:01 An: mapserver-users@lists.osgeo.org Betreff: [mapserver-users] getFeatureInfo html with special characters indatasource hi, I'd like to get a html-feature-info like Niedersachsen 167 I get both, 'Niedersachsen' and '167' from the same table-column of the database and I need the line break between them. When I use 'Niedersachsen167' in the Atrributes, mapserver changes the brackets into the html-entities and i get 'Niedersachsen
167' which is shown as 'Niedersachsen167' in the browser-window. Are there any special-characters I can use in the database or is there an other solution? Jörg ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
Re: [mapserver-users] Re: Mapserver unnecessary slow with Spatialite
Even Rouault wrote: > 30. August 2011 23:28 > I've just added support for spatialite views in GDAL trunk > (r23011). Spatial > index of the base table is used to speed up spatial queries > on the view. > > On your example, to create the spatial view : > > ogrinfo berlin.sqlite -sql "create view > osm_line_highway_not_null as select > OGC_FID AS ROWID, GEOMETRY, osm_id ,highway,ref,name, tunnel > from osm_line > where highway is not null" > > ogrinfo berlin.sqlite -sql "INSERT INTO > views_geometry_columns (view_name, > view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES > ('osm_line_highway_not_null', 'GEOMETRY', 'ROWID', > 'osm_line', 'GEOMETRY')" > > Note: you must call the primary key ROWID if you want QGIS to > be able to > display the view on the map. I'm not sure why this is > necessary (the OGR > driver works with other names), may be a limitation of the > qgis spatialite > driver. > > And then you can use osm_line_highway_not_null as a regular > layer for > mapserver. I have done some speed tests with fresh Mapserver Windows build (date 09.09.2011) installed from http://www.gisinternals.com/sdk/PackageList.aspx?file=release-1500-gdal-mapserver.zip and the gdal binaries from the same package. Results are somehow baffling. Good news is that with the new build does support the use of Spatialite views as Mapserver layers that the views are really a bit faster to use than having DATA as "SELECT...FROM...WHERE.." in the mapfile. Feels good so far. But when I switched back to standard MS4W I measured that Mapserver was more than two times faster with the old binaries than with the new ones. A closer analysis showed that new binaries were considerably faster in rendering the most heavy layer "roadsclose_03" but much slower with all the othet layers. Results with MS4W = rendering using outputformat named png (AGG/PNG). WMS/WFS set-up and query, 0.000s Layer 0 (landuse_layer1), 0.531s Layer 1 (landuse_layer2), 0.481s Layer 2 (landuse_layer3), 0.501s Layer 3 (landuse_layer4), 0.550s Layer 4 (landuse_layer5), 0.491s Layer 5 (landuse_layer6), 0.281s Layer 7 (sports), 0.430s Layer 10 (railways_03), 0.301s Layer 18 (roadsclose_03), 5.398s Layer 27 (places_01), 0.250s Drawing Label Cache, 0.010s total time: 9.244s Results with the dev-binaries = rendering using outputformat named png (AGG/PNG). WMS/WFS set-up and query, 0.000s Layer 0 (landuse_layer1), 1.753s Layer 1 (landuse_layer2), 2.554s Layer 2 (landuse_layer3), 1.762s Layer 3 (landuse_layer4), 1.733s Layer 4 (landuse_layer5), 2.543s Layer 5 (landuse_layer6), 1.793s Layer 7 (sports), 2.163s Layer 10 (railways_03), 1.732s Layer 18 (roadsclose_03), 1.753s Layer 27 (places_01), 1.732s Drawing Label Cache, 0.000s total time: 19.518s I can mail a link for downloading the whole test set-up with data and mapfiles if someone gets interested. -Jukka Rahkonen- ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
[mapserver-users] getFeatureInfo html with special characters in datasource
hi, I'd like to get a html-feature-info like Niedersachsen 167 I get both, 'Niedersachsen' and '167' from the same table-column of the database and I need the line break between them. When I use 'Niedersachsen167' in the Atrributes, mapserver changes the brackets into the html-entities and i get 'Niedersachsen
167' which is shown as 'Niedersachsen167' in the browser-window. Are there any special-characters I can use in the database or is there an other solution? Jörg ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
[mapserver-users] Mapserver and MapScript performance issue
Hi, First of all, thank you for Mapserver and all of the documentation. Its really a great product. Im having some performance issues when querying on a column in MapScript. I use the following code: $oResult = @$oLayerObject->queryByAttributes($strField, $strSearchString, MS_SINGLE); Where $strField can for instance be Point_ID and $strSearchString can be something like HEG1 . I only need one result, as the column is the primary key for the table, and is unique. The tables Im searching through is of MapInfo *.tab format, has about 50000 records, and the actual columns are indexed. Each lookup with PHP MapScript takes about 1.5 seconds. Ive uploaded the data into a PostGIS-database, and I can find the actual record in about 0.03 seconds. My mapfile definition of the layers looks like this: LAYER NAME Traseer PROJECTION "init=epsg:32632" END GROUP TelMe METADATA "wfs_title" "Traseer" "wfs_srs" "EPSG:32632" "gml_featureid" "Trace_ID" "gml_include_items" "Trace_ID,Type" END TYPE LINE CONNECTIONTYPE OGR CONNECTION "TM_Nett/TM_Traces.TAB" STYLEITEM "AUTO" maxscaledenom 30 TEMPLATE "ttt_query.html" DUMP TRUE CLASS NAME "Traseer" SYMBOL "default-circle" COLOR 255 0 0 #SIZE 6 END END # Layer LAYER NAME Punkter GROUP TelMe METADATA "wfs_title" "Punkter" "wfs_srs" "EPSG:32632" "gml_featureid" "Point_ID" "gml_include_items""all" "gml_exclude_items" "rowid#" "wms_title" "Punkter" "wms_srs" "EPSG:32632" END PROJECTION "init=epsg:32632" END DUMP TRUE TYPE POINT CONNECTIONTYPE OGR CONNECTION "TM_Nett/TM_Points.TAB" CLASSITEM "Type" CLASS maxscaledenom 1000 TEMPLATE "ttt_query.html" EXPRESSION "TRASE SPLIT" NAME "Trasedeling" STYLE SYMBOL 'circle' SIZE 8 COLOR -1 -1 -1 #Usynlig END END CLASS maxscaledenom 3000 TEMPLATE "ttt_query.html" EXPRESSION /NEXANS WTC*/ NAME "WTC-Bokser" STYLE SYMBOL 'square' SIZE 12 COLOR 255 128 0 #Orange OUTLINECOLOR 0 0 0 END END CLASS maxscaledenom 1 TEMPLATE "ttt_query.html" EXPRESSION /NODE*/ NAME "Node"