[mapserver-users] maxscale (denom) with gml ?

bpicinbono at worldonline.fr bpicinbono at worldonline.fr
Tue Dec 2 06:15:39 PST 2014


Thanks for the explanations and the ol3 solution, it's working perfectly.
Thanks again
Blaise


WFS is meant to query raw feature data. Scale dependent rendering must be
controlled within the renderer itself - in this case using
minResolution/maxResolution options as described in
http://openlayers.org/en/v3.0.0/apidoc/ol.layer.Layer.html.

> -----Ursprüngliche Nachricht-----
> Von: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org] Im Auftrag von Lime, Steve D (MNIT)
> Gesendet: Dienstag, 2. Dezember 2014 00:25
> An: bpicinbono at worldonline.fr; mapserver-users at lists.osgeo.org
> Betreff: Re: [mapserver-users] maxscale (denom) with gml ?
>
> WFS runs through the MapServer query pipeline. Queries are generally scale
> independent except for cases where you are interacting with a source map
> (e.g. clicking on things), I mean, a scale computation requires both a map
> extent and a resulting image size. From that you can compute a cellsize
> and scale. I don't know if it's possible to force a scale computation
> somehow by passing a map size (in pixels) along with a map extent. or
> perhaps by passing the desired scale value directly (map.scaledenom?).
> Anyone have other ideas?
>
> I believe the query functions do respect min/maxscale (denom) values if
> the map scale is not set to -1.
>
> Steve
>
> ________________________________________
> From: mapserver-users-bounces at lists.osgeo.org [mapserver-users-
> bounces at lists.osgeo.org] on behalf of bpicinbono at worldonline.fr
> [bpicinbono at worldonline.fr]
> Sent: Monday, December 01, 2014 4:05 PM
> To: mapserver-users at lists.osgeo.org
> Subject: Re: [mapserver-users] maxscale (denom) with gml ?
>
> from the ol3 extract of my last post (below), it's WFS as I see:
>
> format: new ol.format.WFS({
> ...
>
> regards
>
>
>
>
> On 12/01/2014 10:12 PM, Lime, Steve D (MNIT) wrote:
>> I meant what so the calls to MapServer from OpenLayers look like? Are
> you
> using WFS, custom MapServer queries or perhaps OGR output formats? Doesn't
> look
> like the latter from your mapfile.
>>
>> Steve
>>
>> -----Original Message-----
>> From: mapserver-users-bounces at lists.osgeo.org
> [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of
> bpicinbono at worldonline.fr
>> Sent: Monday, December 01, 2014 3:06 PM
>> To: mapserver-users at lists.osgeo.org
>> Subject: Re: [mapserver-users] maxscale (denom) with gml ?
>>
>>
>>
>> Many thanks for investigating;
>> please check below the relevant parts of the mapfile, as well as the
> openlayers related code; (the purpose is to display nooa gfs winds
> forecasts,
> "vents" means "winds" in french);
>>
>> some stuff like the SYMBOL part and the layer's STYLE part should not be
> necessary anymore with gml output, as well as few other directives, clean
> up job
> ahead..., but working, minus the maxscale (denom) directive which is not
> working
> in this configuration;
>>
>> I could manage the scale display control on the openlayers 3 side with
> an if
> case based on the zoom level, but I would prefer mapserver mapfile to
> drive it;
>>
>> Thanks again
>> Blaise
>>
>>
>> - - - - - - - - - -
>> --- mapfile ---
>> (called rg_noaa_vents_gml.map, called on the ol3 side)
>>
>> MAP
>>   NAME rg_noaa
>>   STATUS ON
>>   SIZE 600 600
>>
>>   EXTENT -180 -90 180 90
>>
>>   FONTSET "fonts/fonts.list"
>>   UNITS DD
>>   SHAPEPATH "data"
>>   IMAGECOLOR 230 230 255
>>   TEMPLATEPATTERN "rg_noaa"
>>   IMAGETYPE PNG24
>>   OUTPUTFORMAT
>>
>>     # image mapfile #
>>     #TRANSPARENT ON
>>     #IMAGEMODE RGB
>>     #DRIVER GD/PNG
>>
>>     # gml mapfile #
>>     NAME "gml"
>>     DRIVER "TEMPLATE"
>>     FORMATOPTION "FILE=rg_noaa_vent_gml.map"
>>
>>   END
>>   PROJECTION
>>     "init=epsg:4326"
>>   END
>>
>>   WEB
>>     HEADER templates/header_ol.html
>>     TEMPLATE "set in index.html"
>>     FOOTER templates/footer.html
>>     MAXSCALE 200000000
>>     IMAGEPATH "/tmp/ms_tmp/"
>>     IMAGEURL "/ms_tmp/"
>>     METADATA
>>       "WMS_TITLE" "vrrroum_noaa"
>>
>>       "WMS_ONLINERESOURCE"
>>
> "http://localhost/cgi-
> bin/mapserv?map=/var/www/html/rg/blabla_02/noaa/rg_noaa_vents_gml.map"
>>
>>       "WMS_SRS" "EPSG:4326"
>>       "WMS_ENABLE_REQUEST" "*"
>>       #"WMS_FEATURE_INFO_MIME_TYPE" "text/html"
>>       "wms_feature_info_mime_type" "text/gml"
>>
>>       "WFS_ONLINERESOURCE"
>>
> "http://ip-adress/cgi-
> bin/mapserv?map=/var/www/rg/blabla_02/noaa/rg_noaa_vents_gml.map&"
>>
>>       "WFS_ENABLE_REQUEST" "*"
>>       "wfs_feature_info_mime_type" "text/gml"
>>
>>     END
>>   END
>>
>>   SYMBOL
>>     NAME "arrowfilled"
>>     TYPE vector
>>     FILLED true
>>     #FILLED false
>>     POINTS
>>     1 0
>>     -1 0
>>     -1 7
>>     -3 7
>>     0 10
>>     3 7
>>     1 7
>>     1 0
>>     -1 0
>>     END # POINTS
>>   END # SYMBOL
>>
>>
>> LAYER   ##### ##### ##### fv_168
>> NAME fv_168
>> GROUP v_168
>> TYPE POINT
>> STATUS ON
>> DATA fv_168
>> MAXSCALEDENOM 20000000
>> SIZEUNITS kilometers
>>
>> METADATA
>>   "WMS_TITLE" "v_168"
>>   "WMS_SRS" "epsg:4326"
>>   "wms_include_items" "all"
>>   "gml_include_items" "all"
>>   "WMS_ENABLE_REQUEST" "*"
>>
>>   "wfs_title" "v_168"
>>   "wfs:srs" "EPSG:4326"
>>   "gml_include_items" "all"
>>   "gml_featureid" "ID"
>>   "wfs_enable_request" "*"
>> END
>>
>> CLASS
>> TEMPLATE "templates/vents.html"
>>  STYLE
>>   OPACITY 50
>>   SYMBOL "arrowfilled"
>>   SIZE [VITREP]
>>   ANGLE [ANGLE]
>>   WIDTH 2
>>   COLOR 100 100 150
>>  END
>> END
>> DUMP TRUE
>> HEADER "templates/vents_header_ol.html"
>> FOOTER "templates/vents_footer_ol.html"
>> TOLERANCE 20
>> END
>>
>> END # Map File
>>
>>
>>
>>
>> - - - - - - - - - - - - - -
>> --- openlayers 3 ---
>> (extracts of the layer description)
>>
>> var gmlSourceV_168 = new ol.source.ServerVector({
>>     layer: 'v_168gml',
>>     format: new ol.format.WFS({
>>         featureNS: "http://mapserver.gis.umn.edu/mapserver",
>>         featureType: 'fv_168'
>>     }),
>>     projection: 'EPSG:4326',
>>     loader: function(extent, resolution, projection) {
>>         $.ajax({
>>             url:
>>
> 'http://ip-adress/cgi-
> bin/mapserv?map=/var/www/html/rg/blabla_02/noaa/rg_noaa_vents_gml.map&serv
> ice=WFS&'
>> +
>>
>> 'version=1.1.0&request=GetFeature&typename=fv_168&outputFormat=text/xml;
>> subtype=gml/3.1.1&' +
>>             '&srsname=EPSG:4326&bbox=' + extent.join(',')
>>     }).done(
>>             function(response) {
>>
>> gmlSourceV_168.addFeatures(gmlSourceV_168.readFeatures(response));
>>             });
>>     },
>>     strategy: ol.loadingstrategy.bbox
>> });
>>
>> var gmlLayerV_168 = new ol.layer.Vector({
>>     title: '168gml',
>>     type: 'base',
>>     visible: false,
>>     source: gmlSourceV_168,
>>     style: (function() {
>>         function ruleStyle(vitrep, angle, lon, lat) {
>>             var ruleStyle = [new ol.style.Style({
>>                 image: new ol.style.Icon({
>>                     src: 'images/windarrow_42.png',
>>                     rotation: angle * 3.141592654 / 180
>>                 }),
>>             })];
>>             return ruleStyle;
>>         }
>>         return function(feature, resolution) {
>>             var vitrep = feature.get('VITREP');
>>             var angle = - feature.get('ANGLE');
>>             var lon = feature.getX;
>>             var lat = feature.Y;
>>             return ruleStyle(vitrep, angle, lon, lat);
>>     };
>>     })()
>> });
>>
>>
>>
>>
>>
>>
>>
>> On 12/01/2014 08:50 PM, Lime, Steve D (MNIT) wrote:
>>> How are you triggering the GML production in MapServer?
>>>
>>> -----Original Message-----
>>> From: mapserver-users-bounces at lists.osgeo.org
>> [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of
> bpicinbono at worldonline.fr
>>> Sent: Monday, December 01, 2014 11:01 AM
>>> To: mapserver-users at lists.osgeo.org
>>> Subject: [mapserver-users] maxscale (denom) with gml ?
>>>
>>> Dear list,
>>>
>>> I have a mapfile that control the display of some numerous data
>>> depending on
>> the
>>> scale:
>>> - dezooming max: not displaying the shapes;
>>> - at a particular zooming-in level: displaying the shapes;
>>>
>>> This is done with:
>>> MAXSCALE 200000000
>>> in the WEB section of the mapfile
>>>
>>> and with:
>>> MAXSCALEDENOM 20000000
>>> in the layer section of the mapfile
>>>
>>> This works fine rendering images with a basic cgi mapserver
>>> application or in
>> an opelayers 3 application.
>>>
>>> I am now trying to get the same behaviour in an openlayers 3
>>> application but
>> rendering the shapes on client side through gml instead of server side
> image
> rendering.
>>> Gml rendering works fine, but it seems that the MAXSCALE (DENOM)
>>> directive is
>>> omitted: the shapes display is no more turned off when dezooming a lot.
>>>
>>> Any clue to have this MAXSCALE ( DENOM ) working with gml display ?
>>> Thanks in advance
>>> _______________________________________________
>>> mapserver-users mailing list
>>> mapserver-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>>
>>>
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users







More information about the MapServer-users mailing list