[OpenLayers-Dev] quick summary
Bart van den Eijnden (OSGIS)
bartvde at osgis.nl
Thu Mar 8 14:54:09 EST 2007
This is for sure something that a lot of people have been waiting for.
Thanks everyone, including the people doing this hacking marathon!
I look forward to start using this new vector stuff.
Best regards,
Bart
Christopher Schmidt schreef:
> Quickshot summary of the past couple days of OpenLayers hacking:
>
> * Created new branch from trunk, /sandbox/vector-2.4
> * Moved in:
> * Layer/Vector.js
> * Renderer/*
> * Changed:
> * Feature.js -> Feature.Vector. There are now two features -- one
> designed for use with Markers, popups, etc. and one designed for
> use with geometries.
> * Parser/Writer classes now in a single 'Format', which has read()
> and write() functions which switch between strings and collections
> of features. This means that ot create a layer which is like the
> GML layer (accept a URL, put features on the map) but which
> parses, for example, GeoRSS, requires only writing a Format() class
> for it, and then changing a single line of code.
>
> This also means that it is possible to take any vector layer and
> serialize it to GML with a single function call. (var g = new
> OpenLayers.Format.GML(); gml = g.write(layer.features);)
>
> * Layer.GML and Layer.WFS now use this Format class:
> http://dev.openlayers.org/sandbox/vector-2.4/examples/gml-layer.html
> http://dev.openlayers.org/sandbox/vector-2.4/examples/wfs-t.html
> (saving WFS-T doesn't work yet. I'm still working on it :)
>
> * Major changes:
> * Attributes() parsing moved into the Format() class. This makes it
> easier for other formats, but may be a performance hit. (However, I
> have run one hundred features through the GML parser and not had
> any speed problems: the speed problems are typically in rendering
> rather than raw XML parsing). This means that feature.attributes is
> now just a dict, rather than an object with an XMLNode attached.
> This means that all attribute parsing is done in one location,
> which makes it much simpler across the code.
>
> * Style.js is going away. Instead, there is an
> OpenLayers.Feature.Vector.defaultStyle (similar to
> OpenLayers.Marker.defaultMarker) which encapsulates the default
> style: various other styles will be stored where appropriate,
> usually in the controls.
>
> * MouseListeners seemed to boil down into a concept of 'handlers':
> there are several types of events on the map which should be encapsulated
> in handlers which have various actions. ("draw box", "draw point",
> etc.) So, there are now 'handlers' which handle the action of
> drawing a point. Controls can then turn these handlers on and off:
> this will allow trivial building of controls like the toolbar,
> because each handler has an idea of whether it is activated or
> deactivated, a toolbar only needs to encapsulate mechanisms for
> turning these functions on and off.
>
> http://dev.openlayers.org/sandbox/vector-2.4/examples/draw-point.html
>
> Checking the box turns the point drawing control on.
> Uncheckint it turns it off.
>
> This also changes the 'box' mechanism such that you can easily tkae
> a box and do whatevery ou want with it. Handlers return the feature
> that was drawn with them, essentially: so when you draw a point
> with the DrawPoint handler, it returns the point. When you draw a
> box with the zoombox handler, it reutrns the box.
>
> If you look at the source of:
>
> http://dev.openlayers.org/sandbox/vector-2.4/examples/custom-control.html
>
> You can see the draw() of the control creates a 'Box' Handler
> (Handler.Box), and assigns the 'done' callback to call notice().
> This means that when the Box handler is done with drawing the box,
> it will call the notice function -- with the bounds of the box. The
> control can then do what it wants with this. In some cases, (mouse
> defaults) this might be to zoom to the bounds described by that
> box. In this case, it just 'alert()'s the pixel coordinates of the
> box.
>
> This solves a whole host of 'how do I change the behavior of'
> questions: it encapsulates the Handling of mouse events at a lower
> level than registering on the map, and the result is that somewhat
> hacky code (like that in MouseDefaults) moves down a level, making
> what MouseDefaults will soon be a very simple control which just
> sets up a set of handlers.
>
>
> * Testing:
> * Currently, the geometry classes have more than 150 tests. Erik has
> done an excellent review of these classes, and has pronounced them
> complete... I think :)
> * Renderer, Format and Layer tests are coming up the pipeline.
>
> * Documentation
> * The planned route for API documentation is JSDoc, and the JSDoc
> comments have been kept together for most of the code (though a few
> classes that I wrote need better docs ;))
> * There are examples demonstrating how to add simple features to
> layers, and that API is unlikely to change. Very little API change
> has happened at all betweeen the vector and vector-2.4 branch, so
> if you were using one, you should be fine with the final version
> that goes to trunk.
>
> * Future plans:
> The desire is to get this stuff as done as possible this week such
> that we can walk away from the Cambridge OpenLayers Hackathon with
> a working branch, and hten soon after, merge it to trunk. We are
> hoping to get everyone on board for a 2.4 release in the next 2
> weeks with vector stuff -- even if some features and functionality
> are not complete -- so long as there is a consensus that the
> existing API is solid and unlikely to change. This will let
> everyone work on continuing development of the vector code *on trunk*
> rather than on a branch.
>
> I just want to offer a *huge* thank you to all the people who have made
> this possible. The work on the vector branch is the only thing that has
> made this development possible, and a *lot* of people took part in
> making that happen. Camptocamp's participation especially took this code
> from being a great idea to being a great tool. The vector branch is a
> core example of the widespread diversity of the Open Source community
> participation that has led OpenLayers to become such a great project,
> and I am extremely grateful -- both as a project contributor and
> *personally* -- for all the work that has been done and all the great
> feedback we've gotten.
>
> Thank you, thank you, and thank you again. It is because of development
> like this that OpenLayers is going to continue to move onward and upward
> into becoming the best mapping API out there.
>
> Regards,
>
--
Bart van den Eijnden
OSGIS, Open Source GIS
bartvde at osgis.nl
http://www.osgis.nl
More information about the Dev
mailing list