(cross posting to mapbuilder and geoserver-devel)
TOPP (The Open Planning Project) is very soon starting the
"GeoCollaborator" project. The basic goals of the GeoCollaborator
project is to "bring open mapping to the masses" in the sense that we
want people to be able to easily put maps on their site, easily add and
edit layers, and easily share their layers with others.
We're just starting out, but I belive it'll be, basically, 4 things:
1. Hosted base layers (like TIGER, VMAP0, and Landsat) as WMS/WFS
2. Hosting user's layers
3. Added 'extended' WFS functionality (ie. security, Feature Versioning,
etc...)
4. Nice Client Application (we are looking to support all the
open-standards-based ones, but we want a default one for our hosted
apps)
#1 and #2 mean that it should be absolutely trivial for someone to setup
a map or dataset on their site (and we're going to make it as easy as
possible). #3 adds "wiki" like support to the geodata so its easier to
manage and track changes (see recent discussion on the geoserver-devel
list).
What I'm emailing you folks about is #4 ("Nice Client Application"). We
want to have a really easy-to-use application for editing that
leverages the open standards (ie. WFS-T). All the current
implementations, I feel, can be improved.
I've been looking into three technologies for doing this - AJAX, SVG,
and FLASH.
I put a wiki up with a bunch of notes (mostly links to articles, but
also some really tiny experiments) here:
http://docs.codehaus.org/display/GEOS/ajax_flash_svg
I'll summarize VERY briefly here:
A) AJAX (ie. Mapbuilder)
Join onto the Mapbuilder project and build the application from it.
Looks like AJAX is available on 90% of browsers BUT:
a) Application and WFS must be on the same server (or use proxy)
b) Browser security issues (high security = no XMLHTTPRequest)
But:
a) JavaScript isn't nice, cross-browser JS is murder.
b) drawing using <Div> doesn't scale nor is it pretty
c) [sortof] stuck with just using <img>
d) always have to go back to server to get data
Pluses:
a) existing Mapbuilder community
b) lots of people can hack a little JS
c) has lots of potential
B) SVG
Join mapbuilder; change it so that there is a pure-HTML rendering
engine (ie. <IMG> and <DIV>) and an SVG-based scene graph (that will
handle everything the HTML version does, but also SVG content, plus
SVG-applications).
NOTE: I really like this solution, but it has quite a few issues.
Main Problems:
a) see AJAX section above
b) Browser support:
* Only available in a few % of browsers:
Stats say 13.5%, but FireFox no longer support
the Adobe SVG plugin, so that's probably 10% too high.
"Support" and "Good Support" are two different things.
* Adobe doesn't seem to be supporting their SVG plugin. Last
release was 2 years ago - people were expect a new version
"any day now" in 2003. Also, Adobe bought Macromedia (ie.
Flash) so its no longer in their best interest to promote
SVG-in-the-browser.
* Modzilla SVG was supposed to be in 1.1, but its been delayed
until 1.5. I'm not sure how active the development is, but it
does appear to be decent (this is encouraging).
* People seem to love SVG, but there doesn't appear to actually
be much actually happening.
* Its POSSIBLE that a future flash will support SVG.
c) Plugins: You have to download a plugin to see it in IE. Users
doesn't
want to do this, and many are prevented from doing this. This is a
huge hassle and its biggest problem by far.
d) Implementations arent that stable (I've blue screened my machine
twice running SVG applications). But, i think our useage will be in
the "easy" category, so I dont think this is a problem.
e) Most of the SVG applications are very buggy, which is very
discouraging (this could just be cross-browser JS issues; its hard to
tell).
f) worried that we'll spend a lot of time getting a nice SVG application
that only a few % of users can actually use.
Advantages:
a) SVG is useful in all sorts of applications (i.e. PDFs, drawing
programs, printing, etc...) and is vector based (ie 'scalable').
b) Very powerful - you can do lots with it
c) Fairly easy to do simple stuff
d) easy for hackers to interact with and do "neat stuff"
e) data is actually small and compresses well (ie. all of manhattan
TIGER is about 50-100k, smaller than a single image) which means very
reduced bandwidth & fast downloading.
f) scalable (in terms of size; much better than <DIV> drawing)
g) easier to make "nice" UIs (??)
h) SVG is an open standard
i) nice to add good SVG support to geoserver anyways
j) XML/DOM based; lots of tools to manipulate it and its 'familiar'
c) FLASH
Write a Macromedia Flash application, or build off a currently
existing project (like worldbuilder, if it goes Open Source).
Disadvantages:
a) Hard to have an "open" flash project since you basically need the
Flash IDE.
b) cannot join with other projects like mapbuilder
c) non-flash programmers are pretty much excluded.
Advantages:
a) Works on 97% of browsers - even ones in libraries, corporately
controlled, etc...
b) The .SWF format is "open"-ish (and there's lots of OS tools for
generating it - but they're all non-trivial to learn)
c) nice [macromedia $500] IDE to build applications
d) ActionScript (flash's scripting language) IS cross-browser and nicer
than JS.
e) lots of Flash programmers out there
f) Flash doesn't crash your machine
g) Fast
h) just write the application and it'll work well.
I'm just sending out thoughts so that I can gather more information and
ideas - we're not going to be starting for a bit.
Dave
ps. again, I'll mention the wiki notes page (with some experimental
stuff at the bottom):
http://docs.codehaus.org/display/GEOS/ajax_flash_svg
(feel free to add to it)
----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/