Opened 20 years ago

Closed 20 years ago

Last modified 20 years ago

#523 closed defect (fixed)

[WMS Context] Problems with DataURL

Reported by: dmorissette Owned by: jmckenna@…
Priority: high Milestone:
Component: WMS Server Version: 4.1
Severity: normal Keywords:
Cc: jmckenna@…, dgadoury@…

Description

This came out of the following Chameleon bug:
http://www.maptools.org/bugzilla/show_bug.cgi?id=167

Looking at the mapcontext.c code, it seems that there's a problem in MapServer's
context support.

For sure DataURL isn't implemented at the layer level in MapServer. Plus the
syntax of what's been implemented inside the <General> element may not apply to
all context versions.

I think this whole DataURL thing needs to be reviewed, and fixes applied in
MapServer 4.0.x and 4.1.

Change History (16)

comment:1 by dmorissette, 20 years ago

Cc: mapserver-bugs@… gadoury@… added
Owner: changed from mapserverbugs to lacroix@…
Assigned to Julien since he's the one who implemented mapcontext.c

comment:2 by jlacroix, 20 years ago

Cc: lacroix@… added
Owner: changed from lacroix@… to mckenna@…
The DataURL tag was not supported at all. I implemented the DataURL tag and it
work now. Also I noticed that some other tags were missing.  So I also
implemented the support of MetadataURL and DescriptionURL (This one is at the
map level). 

Since I'm not setuped to do documentation (and I don't know where to find the
file that needs to be edited ;) ), reassign to Jeff to do documentation.

Here's what I added:

Web Object Metadata:
 * wms_descriptionurl : Reference to a webpage which contains relevant
information to the view. This metadata contains 4 elements separated by spaces:
width of the image, height, format, and the url.

Layer Object Metadata
 * wms_dataurl : Link to an online resource where data corresponding to the
layer can be found. This metadata contains 4 elements separated by spaces: width
of the image, height, format, and the url.

 * wms_metadataurl : Link to an online resource where descriptive metadata
corresponding to the layer can be found. This metadata contains 4 elements
separated by spaces: width of the image, height, format, and the url.

Please once the documentation is updated, mark this bug as FIXED.

comment:3 by dmorissette, 20 years ago

Cc: mckenna@… added
Owner: changed from mckenna@… to lacroix@…
Reassigned to Julien.

There is a problem with the current approach with the space-delimited fields vs
the optional width/height fields in the <*URL> elements. Julien will change the
way this work to use 4 metadata entries:
  wms_dataurl_href
  wms_dataurl_format
  wms_dataurl_width
  wms_dataurl_height

This should be applied to all online resource types in the context documents,
including LogoURL and LegendURL.

Note that to limit the amount of disruption in MapServer 4.0.x, we should not
touch the old wms_logourl and wms_legendurl in MapServer 4.0.x, but we could
drop them in version 4.1.x

comment:4 by dmorissette, 20 years ago

Actually, let's avoid making any changes in version 4.0... this small fix is
turning into a change of behavior so we cannot apply it to 4.0 any more.

Julien, please delete any change you had committed in version 4.0 and make your
changes only in version 4.1

comment:5 by jlacroix, 20 years ago

Owner: changed from lacroix@… to mckenna@…
I fixed the problem. I separated all the URL metadata in four new metadata and
remove the dependancy to the old, four space separated value, metadata. So I remove:
wms_logourl
wms_descriptionurl
wms_dataurl
wms_metadataurl
wms_style_%s_legendurl

and I added
wms_logourl_width   Width of the logo of the context.
wms_logourl_height  Height of the logo of the context.
wms_logourl_format  Format of the logo of the context.
wms_logourl_href    Location of the logo of the context.

wms_descriptionurl_format  Format of the webpage which contains relevant
information to the view.
wms_descriptionurl_href    Reference to a webpage which contains relevant
information to the view.

wms_dataurl_href      Link to an online resource where data corresponding to the
layer can be found.
wms_dataurl_format    Format of the online resource where data corresponding to
the layer can be found.

wms_metadataurl_href      Link to an online resource where descriptive metadata
corresponding to the layer can be found.
wms_metadataurl_format    Format of the online resource where descriptive metadata
corresponding to the layer can be found.

wms_style_%s_legendurl_width   Width of an image describing the style.
wms_style_%s_legendurl_height  Height of an image describing the style.
wms_style_%s_legendurl_format  Format of an image describing the style.
wms_style_%s_legendurl_href:   Location of an image describing the style.


Also the note in the todo list about implementing new metadata to separate
lendurl metadata can be remove. It's done now.

Reassgin to Jeff to do the documentation.

comment:6 by dmorissette, 20 years ago

Jeff: is this still on your hit list?

comment:7 by jmckenna@…, 20 years ago

Status: newassigned
thanks for reminding me Daniel.

comment:8 by jmckenna@…, 20 years ago

Julien, I've made the updates to the map Context doc, but before I commit I'd
like to varify that I made the correct changes:

- removed Web Object -> wms_logourl, wms_dataurl
- removed Layer Object -> wms_style_%s_legendurl

- added Web Object -> wms_logourl_width, wms_logourl_height, wms_logourl_format,
wms_logourl_href, wms_descriptionurl_format, wms_descriptionurl_href
- added Layer Object -> wms_dataurl_href, wms_dataurl_format,
wms_metadataurl_href, wms_metadataurl_format, wms_style_%s_legendurl_width,
wms_style_%s_legendurl_height, wms_style_%s_legendurl_format,
wms_style_%s_legendurl_href

i just want to make sure, i checked the spec but it's not always clear.  thanks.

jeff

comment:9 by jlacroix, 20 years ago

Yes that's correct.

However, here's a quick note. As you noticed some parameters have width, height,
format and href, and somme only have format and href. It's because the width and
height are only use for images and parameters that do not have them are text or
html. 

My point is, in the code, we support height and width for all parameters (For
consistency with the spec). But they should not be used. 

I don't know if you want to put a note in the documentation about this or if we
can just ignore that.

comment:10 by jmckenna@…, 20 years ago

I'll make a note of that in the doc, just in case someone wonders.

Julien (or whoever), I'd also like to update the 'TODO' section of the doc, here
is what it currently states:

!!TODO
!Before 4.0 Release
Need to validate request results against the corresponding XML schema files. 

!Long term
Possibly add a configure option (--with-context). 

Implement new metadata to separate all elements from the wms_style_%s_legendurl,
because they are space separated and the legendurl format can contain spaces,
and the legendurl url can contain commas. 



comment:11 by dmorissette, 20 years ago

You can probably take the whole TODO section out.

comment:12 by jlacroix, 20 years ago

You can remove the last one:

Implement new metadata to separate all elements from the wms_style_%s_legendurl,
because they are space separated and the legendurl format can contain spaces,
and the legendurl url can contain commas. 

Others are not done. I unsuccesfully tried to validate against the schema. I did
not find a good engine to validate that. Every engine on internet validate the
DTD. Or since the schema referes to others GML spec shema, it does not recognize
some tags. More job to do on this.

comment:13 by jmckenna@…, 20 years ago

i will remove the last one, thanks.

comment:14 by jmckenna@…, 20 years ago

Resolution: fixed
Status: assignedclosed
changes to doc committed to 4.1-dev CVS

comment:15 by dmorissette, 20 years ago

Please take the whole TODO section out.  The validation has been done, and the
--with-context will never be added.

comment:16 by jmckenna@…, 20 years ago

done.
Note: See TracTickets for help on using tickets.