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

Reply via email to