I found the SVG performance to be a bit slow too, but useable. See the
sample SVG in the wiki - its all of tiger for Manhattan and takes about
0.5 seconds to draw a nice rendering up close, and 3 seconds for he
entire thing. The nice thing about SVG is (1) it looks nice and (2)
very bandwidth friendly (you dont have to reload evertime the user
moves the view) and (3) scriptable.
The Open Street Map folks did a java plugin for their client. I must
admit, this is the first java applet I'd seen in a long long time.
I dont really think that people will want to download a HUGE java JRE to
view/edit a map.
They just revved their client a notch too; it will probably get quite
good.
I don't see that install time as a problem... also Java lets you do 3d
easily.
Note that geoserver uses geotools which has geotools lite - which I
believe is a client side lite WFS viewer.
What do you think of doing it in flash?
I'd rank the choices like this:
1) Pure AJAX. Mapbuilder probably provides the easiest trivial
integration of editable maps into a site. Javascript is a very nice
language. But it has a ceiling when you want to do WFS. Ka-Maps of
course is another alternative here but it is focused on visualization
rather than as a web-workbench which feels more like Mapbuilders slant.
Although I rate this first it has a gating issue re WFS.
2) Java. Simply has flexibility even if not free... you are locked into
Sun policy. Historically Sun has not been responsive to customer requests
and have not looked at real market needs and Java and the Java API's do
suffer because of this. This seems to be improving. It is a real
language and the sky is the limit in terms of your creativity.
I probably would do something in this language first given my druthers.
3) Flash. Quality is a given here - it is more a question of social
engineering. How many people would contribute to this as a flash based
solution? Is it just that flash is not normally associated with open
source since there is no 'view source' button on a users web page? Can
one drive Flash via javascript perhaps as a compromise?
4) SVG. I rank it lowest because of hassle I spent with it; it may still
be a reasonable candidate. Although you'd be doing a lot of javascript
based procedural work, there is enough declarative stuff such as a new
york basemap etc that it would speak to some of SVGs strengths. If you do
a good app then you could push the standard; people would fetch the plugin
because of your app. Mapserver and Geoserver export SVG of course.
I did try to build a UI in SVG and it was beastly slow as well as unstable
across platforms. Also there were so many limits; for example I wanted to
do some simple 3d transforms and they had to be done by hand because the
grammer has absolutely no concept of triples or 3d matrix multiplies. So
where 2d matrix operations are handled in assembly language 3d matrix
operations had to be handled in javascript... To use SVG you will have to
do careful scope planning and performance metrics ahead of time.
- a