I'm glad I reached the same conclusion as you did Larry. I'll post a message to the user list to ask about how many users are using GML.
SS On Thu, Nov 20, 2008 at 12:29 PM, Larry Becker <[EMAIL PROTECTED]> wrote: > Hi SS, > > I basically came to the same conclusions. I looked into implementing an > XML pull parser version, but never got started. I managed to eventually > hack up a KML Reader that kind of worked (it took me more than 20 hours), > and I wasn't sure how much demand there would be for a better one. I found > ut that it was fantastically easy to break the current GMLReader. Almost > any change I made caused it go into the wrong state and then it was lost. > > I have had pretty good luck with pull parsers in other software, but this > is not an easy problem. Personally, I wouldn't waste much time solving it > unless someone can justify a credible use case. > > regards, > Larry > > > > On Thu, Nov 20, 2008 at 2:15 PM, Sunburned Surveyor > <[EMAIL PROTECTED]> wrote: >> >> I couldn't help myself, and I looked at the code over the code for >> GMLReader over my lunch break. Larry is correct, the code is pretty >> gnarly. I believe the use of a state machine is caused by the fact >> that a SAX parser pushes xml events to the class. This problem could >> be avoided if you used something like JDOM or an XML pull parser. >> >> The good news is I can fix the code to read linear rings. The bad news >> is it would take me probably 10 to 20 hours. I'd have to really dig >> into the class so I could understand what was going on. I think the >> code complex enough that if you just tried to add a few lines of code >> you'd dork something up. >> >> Here are the options, in my opinion: >> >> [1] Leave things as they are. The GMLReader class won't read >> LinearRings. Close the bug report. >> [2] Add support for reading linear rings to the exisitng GMLReader >> class. If I did this work I would probably reorganize all the stinking >> if statements and other conditional tests into some private methods so >> the class was easier to read and maintain. I'd also want to document >> the way the class works for the next fool that trys to fix a bug with >> GML import. >> [3] Write a new GMLReader class that uses an XML pull-parser. This >> would greatly simplify the class and make it easier to >> improve/maintain GML import. I think this would take about the same >> amount of time as understanding the existing class would take. I also >> think it would be possible to remove the need for an input template by >> automatically detecting the data type of attribute values. If I went >> this route I could allow the user to override this automatic data type >> detection with a simple properties file. I think removing the need for >> an input template would make GML 2.0 import a lot easier for the user. >> >> I'm looking for advice on the best way to proceed. Which option would >> benefit the community the most? If no one really cares about GML 2.0 >> (I don't know how many of us are using it) then I will make my own >> decision and move forward. >> >> The Sunburned Surveyor >> >> On Thu, Nov 20, 2008 at 11:36 AM, Sunburned Surveyor >> <[EMAIL PROTECTED]> wrote: >> > Thanks for the files Larry. There are some comments on the state >> > machine in the Javadoc for the GMLReader class, but no diagram. I'm >> > sure you looked at this when you were attempting to make your KML >> > Reader. >> > >> > I'll take a peek at the code today after work I hope. >> > >> > SS >> > >> > On Thu, Nov 20, 2008 at 10:57 AM, Larry Becker <[EMAIL PROTECTED]> >> > wrote: >> >> You can create LinearRings by using the Geometry Converter plugin. OJ >> >> supports writing LinearRings to GML, but not reading them. See the >> >> attached >> >> files. I have looked at the GMLReader code when morphing it into the >> >> KML >> >> Reader. It isn't going to be easy to modify, and has so far resisted >> >> all my >> >> attempts at making a KML Reader that supports Attributes. The code is >> >> a >> >> very complex state machine. What would help is the state diagram that >> >> was >> >> used to create the original code. >> >> >> >> regards, >> >> Larry >> >> >> >> On Thu, Nov 20, 2008 at 12:07 PM, Sunburned Surveyor >> >> <[EMAIL PROTECTED]> wrote: >> >>> >> >>> Martin, >> >>> >> >>> Thanks for your valuable input. I will look at the code, but I suspect >> >>> the best thing to do is to load LinearRings as LineStrings and ecplain >> >>> this behavior in the Javadoc. >> >>> >> >>> I'll report back to the list when I have a patch. >> >>> >> >>> SS >> >>> >> >>> On Thu, Nov 20, 2008 at 10:00 AM, Martin Davis >> >>> <[EMAIL PROTECTED]> >> >>> wrote: >> >>> > Well, it's a valid geometry type in JTS, so it should work in OJ. >> >>> > There >> >>> > may be limitations in how it can be manipulated, however - e.g. I >> >>> > suspect that it can't be edited (or at least that if it is it will >> >>> > revert to a plain ol LineString). >> >>> > >> >>> > If this is a concern, another option is to load LinearRings as >> >>> > LineStrings. They should NOT be loaded as Polygons - LinearRings >> >>> > are >> >>> > not areas. >> >>> > >> >>> > Sunburned Surveyor wrote: >> >>> >> Martin, >> >>> >> >> >>> >> Is that a valid feature geometry type in OpenJUMP? I didn't know >> >>> >> that >> >>> >> it was. If it is, then this probably is a bug that needs to get >> >>> >> fixed. >> >>> >> >> >>> >> SS >> >>> >> >> >>> >> On Thu, Nov 20, 2008 at 9:06 AM, Martin Davis >> >>> >> <[EMAIL PROTECTED]> >> >>> >> wrote: >> >>> >> >> >>> >>> Why not read the GML LinearRing into a JTS LinearRing? >> >>> >>> >> >>> >>> Sunburned Surveyor wrote: >> >>> >>> >> >>> >>>> Well, it seems from a "robustness" perspective that it would be >> >>> >>>> good >> >>> >>>> to read in linear rings, even if they are always represented >> >>> >>>> internally and exported as polygons. >> >>> >>>> >> >>> >>>> I will wait for other programmers to comment on what they think >> >>> >>>> the >> >>> >>>> best course is, then I will implement the needed changes. >> >>> >>>> >> >>> >>>> SS >> >>> >>>> >> >>> >>>> On Thu, Nov 20, 2008 at 8:38 AM, Andreas Schmitz >> >>> >>>> <[EMAIL PROTECTED]> >> >>> >>>> wrote: >> >>> >>>> >> >>> >>>> >> >>> >>>>> Sunburned Surveyor wrote: >> >>> >>>>> >> >>> >>>>> Hi, >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>>>> I'm working on one of the OJ 1.2 bugs I selected for squishing >> >>> >>>>>> and >> >>> >>>>>> I >> >>> >>>>>> had a quick question. >> >>> >>>>>> >> >>> >>>>>> Is the GML reader in OpenJUMP supposed to read features >> >>> >>>>>> represented >> >>> >>>>>> by >> >>> >>>>>> a LinearRing? I thought a LinearRing was only used as an >> >>> >>>>>> exterior >> >>> >>>>>> or >> >>> >>>>>> interior boundary of a polygon. A user filed a bug report >> >>> >>>>>> because a >> >>> >>>>>> feature geometry wasn't created from a LinearRing using JUMP's >> >>> >>>>>> GMLReader. But I'm thikning that this isn't a bug, but an >> >>> >>>>>> improper >> >>> >>>>>> understanding of how feature geometries are represented in GML. >> >>> >>>>>> A >> >>> >>>>>> feature should be represented by a polygon, not a linear ring. >> >>> >>>>>> >> >>> >>>>>> If GMLReader is supposed to construct a feature goemetry >> >>> >>>>>> (polygon?) >> >>> >>>>>> from a linear ring, then I'll fix the bug. If GMLReader is not >> >>> >>>>>> supposed to do this, because it isn't the proper way to >> >>> >>>>>> represent a >> >>> >>>>>> feature, then I will close the bug. >> >>> >>>>>> >> >>> >>>>>> >> >>> >>>>> I think in GML2 this is allowed: >> >>> >>>>> >> >>> >>>>> http://schemas.opengis.net/gml/2.1.2/geometry.xsd >> >>> >>>>> >> >>> >>>>> One can always wonder why anyone would want it, but some people >> >>> >>>>> apparently have >> >>> >>>>> use cases for everything... The problem that is inherent here >> >>> >>>>> is, if >> >>> >>>>> you read >> >>> >>>>> the linear ring in as a polygon, what happens when exporting as >> >>> >>>>> GML >> >>> >>>>> again? Will >> >>> >>>>> it be exported as polygon or as linear ring? Is every linear >> >>> >>>>> ring >> >>> >>>>> also a >> >>> >>>>> polygon? I suppose not, as there are almost no restrictions on >> >>> >>>>> the >> >>> >>>>> form of a >> >>> >>>>> linear ring, but many (such as orientation of the rings, self >> >>> >>>>> intersections >> >>> >>>>> etc.) on polygons. >> >>> >>>>> >> >>> >>>>> I'm unsure on how to solve this problem though, the better you >> >>> >>>>> want >> >>> >>>>> to solve it, >> >>> >>>>> the more work it is obviously. >> >>> >>>>> >> >>> >>>>> Best regards, Andreas >> >>> >>>>> -- >> >>> >>>>> l a t / l o n GmbH >> >>> >>>>> Aennchenstrasse 19 53177 Bonn, Germany >> >>> >>>>> phone ++49 +228 18496-12 fax ++49 +228 1849629 >> >>> >>>>> http://www.lat-lon.de http://www.deegree.org >> >>> >>>>> >> >>> >>>>> -----BEGIN PGP SIGNATURE----- >> >>> >>>>> Version: GnuPG v1.4.9 (GNU/Linux) >> >>> >>>>> >> >>> >>>>> iEYEARECAAYFAkklkpUACgkQ737OVr+Ru7pgtACg5bMBBMLlo3wNsiXw7D+BB0tz >> >>> >>>>> OG8AoJc+QpDAnPZ2NTA+K//fxBcsCHI7 >> >>> >>>>> =9hXg >> >>> >>>>> -----END PGP SIGNATURE----- >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> ------------------------------------------------------------------------- >> >>> >>>>> This SF.Net email is sponsored by the Moblin Your Move >> >>> >>>>> Developer's >> >>> >>>>> challenge >> >>> >>>>> Build the coolest Linux based applications with Moblin SDK & win >> >>> >>>>> great prizes >> >>> >>>>> Grand prize is a trip for two to an Open Source event anywhere >> >>> >>>>> in >> >>> >>>>> the world >> >>> >>>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> >>>>> _______________________________________________ >> >>> >>>>> Jump-pilot-devel mailing list >> >>> >>>>> Jump-pilot-devel@lists.sourceforge.net >> >>> >>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>> >> >>> >>>> >> >>> >>>> ------------------------------------------------------------------------- >> >>> >>>> This SF.Net email is sponsored by the Moblin Your Move >> >>> >>>> Developer's >> >>> >>>> challenge >> >>> >>>> Build the coolest Linux based applications with Moblin SDK & win >> >>> >>>> great prizes >> >>> >>>> Grand prize is a trip for two to an Open Source event anywhere in >> >>> >>>> the >> >>> >>>> world >> >>> >>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> >>>> _______________________________________________ >> >>> >>>> Jump-pilot-devel mailing list >> >>> >>>> Jump-pilot-devel@lists.sourceforge.net >> >>> >>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >>> >>>> >> >>> >>>> >> >>> >>>> >> >>> >>> -- >> >>> >>> Martin Davis >> >>> >>> Senior Technical Architect >> >>> >>> Refractions Research, Inc. >> >>> >>> (250) 383-3022 >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> ------------------------------------------------------------------------- >> >>> >>> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >>> >>> challenge >> >>> >>> Build the coolest Linux based applications with Moblin SDK & win >> >>> >>> great >> >>> >>> prizes >> >>> >>> Grand prize is a trip for two to an Open Source event anywhere in >> >>> >>> the >> >>> >>> world >> >>> >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> >>> _______________________________________________ >> >>> >>> Jump-pilot-devel mailing list >> >>> >>> Jump-pilot-devel@lists.sourceforge.net >> >>> >>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >>> >>> >> >>> >>> >> >>> >> >> >>> >> >> >>> >> >> >>> >> ------------------------------------------------------------------------- >> >>> >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >>> >> challenge >> >>> >> Build the coolest Linux based applications with Moblin SDK & win >> >>> >> great >> >>> >> prizes >> >>> >> Grand prize is a trip for two to an Open Source event anywhere in >> >>> >> the >> >>> >> world >> >>> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> >> _______________________________________________ >> >>> >> Jump-pilot-devel mailing list >> >>> >> Jump-pilot-devel@lists.sourceforge.net >> >>> >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >>> >> >> >>> >> >> >>> > >> >>> > -- >> >>> > Martin Davis >> >>> > Senior Technical Architect >> >>> > Refractions Research, Inc. >> >>> > (250) 383-3022 >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > ------------------------------------------------------------------------- >> >>> > This SF.Net email is sponsored by the Moblin Your Move Developer's >> >>> > challenge >> >>> > Build the coolest Linux based applications with Moblin SDK & win >> >>> > great >> >>> > prizes >> >>> > Grand prize is a trip for two to an Open Source event anywhere in >> >>> > the >> >>> > world >> >>> > http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> > _______________________________________________ >> >>> > Jump-pilot-devel mailing list >> >>> > Jump-pilot-devel@lists.sourceforge.net >> >>> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >>> > >> >>> >> >>> >> >>> ------------------------------------------------------------------------- >> >>> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >>> challenge >> >>> Build the coolest Linux based applications with Moblin SDK & win great >> >>> prizes >> >>> Grand prize is a trip for two to an Open Source event anywhere in the >> >>> world >> >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >>> _______________________________________________ >> >>> Jump-pilot-devel mailing list >> >>> Jump-pilot-devel@lists.sourceforge.net >> >>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >> >> >> >> >> >> >> -- >> >> http://amusingprogrammer.blogspot.com/ >> >> >> >> >> >> ------------------------------------------------------------------------- >> >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >> challenge >> >> Build the coolest Linux based applications with Moblin SDK & win great >> >> prizes >> >> Grand prize is a trip for two to an Open Source event anywhere in the >> >> world >> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >> _______________________________________________ >> >> Jump-pilot-devel mailing list >> >> Jump-pilot-devel@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> >> >> >> >> > >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > -- > http://amusingprogrammer.blogspot.com/ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel