Hi,

The WMS version negotiation is described by the OGC and you can read it for 
example from here 
http://cite.opengeospatial.org/OGCTestData/wms/1.1.1/spec/wms1.1.1.html#basic_elements.version.negotiation

You did the right thing by doing GetCapabilities without &VERSION=x.x.x. Please 
be kind for your users and give them a possibility to override the 
automatically detected highest version and select some other version manually.

-Jukka Rahkonen-


 Alexis "Agemen" wrote:

> Hi everybody !

> I'm Alexis Guéganno and currently am part of the OrbisGIS development
team. First message on this list, I hope I'll do the things right.

> We've been stuck recently in OrbisGIS with our WMS client
implementation. It was made of legacy code that was pretty
unefficient... So we've searched for a solution. As one of my teammates
knew the openJUMP code base, having been a contributor here, he advised
me to have a look in the openJUMP client. After some readings in it, I
decided to give it a try and had to solve the following issues :

> - extract the code from openJUMP and put it in the OrbisGIS code base
> - Add support for WMS 1.3.0
> - Fix OrbisGIS to use the library from openJUMP.

> I made the first operation in two steps. I first put the code directly
in ours... and then realize that it was not practical for me or for
other developers. I decided to put it in a dedicated maven project so
that it can be used with more ease. It has been quite easy has the code
is already well isolated in openJUMP and as you don't have exotic
dependencies on it.

> The second and third steps have been a bit more difficult. I've had some
problems with bounding box and crs management that I've tried to solve.
Fortunately, as WMS 1.1.1 is already ready, I've been able to use it to
build the WMS 1.3.0 support. It seems to be working with most servers
now. The ones I'm having problems with seem to be buggy, so the problems
I have seem not to come from the client...

> A huge modification I've made is linked to the recognition of the server
version. It had to be asked explicitly by the caller until now, but I
did not find a way to check the uppest supported version from the
server... What I do is that I perform a

> ?SERVICE=WMS&REQUEST=GetCapabilities

> request, that shall give me some capabilities document, and I try to
recognize the version from it. The client assumed the server to be 1.0.0

> I've tried not to change the code base much. In some places, however,
I've sometimes removed comments or done some other minor
modifications... I've removed some call to swing/awt APIs as I didn't
want to face AWT exceptions while performing batch processing.

> The API is still the same, though. I've added a method in MapLayer to
retrieve the BoundingBox associated to a given SRS/CRS, if any, but I
think that's all. And WMS 1.3.0, but I already said that :-p

> There are still some things to do. 1.3.0 support is not perfect, as we
don't process completely the GetMap part of the GetCapabilities answer.
Consequently, if the HTTP GET URI in the GetMap part of the answer is
not the same one that is used to make the GetMap query, we may face
unexpected behaivour.... Moreover, when processing XML documents, we do
not take the XML namespace definition in account so some tags and
attributes won't be recognized in some cases...

> You can find the code I've written on Github. It' has been merged today
in OrbisGIS master on https://github.com/irstv/orbisgis
You'll find the code I've changed under the "wms-client" maven
subproject. It should be quite easy to port back in openJUMP, I would be
really happy if this could happen. I've decided not to change package
names so that my work stays compatible with what you've made in openJUMP.

>   If you think I've made mistakes that must be solved before merging,
let me know here, I'll try to do them as soon as possible (hopefully
some day in the next 12 monthes, so :-p)

> And as a conclusion : thanks for the original code. I found it clear and
easy to read and understand, I hope it didn't loose any clarity because
of me.

Best wishes,

Alexis Guéganno







------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to