Hi everyone,
I'm interested in applying to create an KML - SVG converter. KML and SVG are similar enough that it makes sense for there to be a way to convert from one to the other. My plan would be:
From now until the end of week 1 or 2: Study both formats and work-out the
equivalents between KML and SVG. I know there are features of KML - namely, placemark descriptions, which will not convert directly to SVG. There are probably other features too. I'll try to deal with these in any time I have remaining at the end. I'll also need to work out a way to convert the coordinates systems, and deal with sizing the image - using the KML coordinates, the image would be very small, in a very large document. Then, develop a command-line app that will actually do the conversion. I'll be using C++. I haven't decided on an XML library yet - any suggestions? * Plan the structure of the program. * Focussing first on KML -> SVG, gradually add tags to convert, and check they work correctly. * Once KML -> SVG works, add SVG -> KML. Should be a case of reversing the existing conversion functions. * Write some usage documentation. Once the command-line program is working, I'll start on giving it a GUI. I can't seem to find anything about what UI library Inkscape itself uses - can anybody tell me? It would be better to use the same one, to make maintenance easier. The GUI will send commands to the command-line program, to keep the two separate, and so that Inkscape itself can use the command-line one at some point if needed. * Design the UI. * Implement it. * Write some user documentation. Deliverables: * A command line program that can convert SVG to KML, and back, successfully. * (Probably) A GUI to go with the command-line program. If I get time: * Allow importing/exporting as KML from within Inkscape. * Find ways of handling 'placemark' KML elements, and any others that do not convert easily to SVG, so that a user can convert to SVG, edit, and convert back, without losing anything. Possibly by including hidden elements in the SVG, or using comments. ----------------------- Is this a decent plan? Is there anything I've missed? ~Samuel Atkins