-
Geolocation tracking functions removed from the
T5.Map
class. Will be reimplemented as a plugin so those who want it can use it. Ideally this will be used in conjunction with theT5.SearchTools
plugin. -
animateRoute
method removed from theT5.Map
class. A more generic path animation solution will be implemented at a later date. -
Restructure of the Geo namespace, with removal of some utility search classes to a separate search plugin. (see: T5.SearchTools)
-
HitTest events refer to hit target as
target
rather thandata
which was a poor choice of name. -
Marker dragDrop support implemented, feedback would be great :)
Continued refinement of the 0.9.4 branch ready to implement new features in 0.9.5
-
Moved from using
COG.Loopage
to schedule updates toCOG.animFrame
which wraps the various*RequestAnimationFrame
events if available. -
Removed the
T5.MapTileGenerator
andT5.TileGenerator
and replaced with a more genericT5.ImageGenerator
. -
Changed the mapping engine generators in line with inclusion of the
T5.ImageGenerator
The primary focus of the 0.9.4.1 release are changes to the interaction model for Tile5. Previously interaction (panning, pinch zoom, etc) were tightly coupled to a T5.View
and these interaction handlers have been broken out into a separate library.
Additionally, events and JS in Tile5 and the now separate Interact library have been checked for IE compatibility. As such, Tile5 now works with Internet Explorer via Flash Canvas :)
-
BREAKING CHANGE:
T5.Geo.XY
becomesT5.GeoXY
and is not longer created using a "new" method but rather an object literal is returned whenT5.GeoXY.init
is called. -
BREAKING CHANGE:
T5.Geo.Position
is now a full helper module for all position methods and replaces the somewhat obscurely namedT5.Geo.P
module. Creating new Position objects is done through a call toT5.Geo.Position.init()
rather thannew T5.Geo.Position()
-
BREAKING CHANGE:
T5.Geo.BoundingBox
is now a helper module for bounding box operations in a similar way to the position helper as described above. This replaces theT5.Geo.B
module. As per position objects, bounding boxes are now created with a call toT5.Geo.BoundingBox.init()
rather thannew T5.Geo.BoundingBox()
-
IE Compatibility tweaks. Tile5 now works in IE (via Flash Canvas of course)
-
Offsets now consistently 0 based, rather than using a mix of 0 based for y offset and -x to +x for the xoffset. This will hopefully help prevent me from going insane in the future.
-
Maps and views wrap more effectively, which means that overlays such as the shape and marker overlays display more effectively when wrapping around the x-axis (as is fairly common when playing with maps).
-
Transitioned away from using ant for builds and a concatenation style, to using sprockets instead.
-
Interaction handlers decoupled from views and are now external drivers. This creates opportunities for different interaction handlers and more automated testing opportunities.
-
Handling of zoom simplified to improve stability, will "full-feature" zoom in a later release.
Some major rework of the handling of virtual display offsets in Tile5. Previously a bit of double-handling was going on, however, this has been significantly improved. Complete removal of the poi functionality as this is well handled through good marker management techniques so it's just wasting space.
-
Updates to the way scaling and layer loads occur. Scaling is not as "abrubt" as it was previously and a system similar to Polymaps and Google has been implemented to dynamically load tiles during the scaling operations once a power of 2 change has been detected.
-
Major changes to the offset system
-
Major changes to map provider implementation - now moved to a more generic "generator" implementation.
-
Reimplemented clipping in a revised two-pass drawView implementation, first pass allows layers to contribute to a clipping rect, and the second pass does the actual draw.
-
T5.Geo.PointOfInterest
andT5.Geo.POIStorage
removed. Not deprecated, just removed - apologies if anyone was using them, but if you were you really don't need to. Additionally, thepois
property of aT5.Map
has been removed also. -
As promised, the
annotations
property of aT5.Map
has also been removed in line with the deprecation in the 0.9.3 release. -
The
hitTest
method of aT5.Annotation
separates the x and y coordinates into separate arguments to provide a small performance benefit. -
Internal rework of the
T5.Images
module to improve consistency of results. -
T5.Marker
andT5.ImageMarker
replaceT5.Annotation
andT5.ImageAnnotation
respectively, however, the old classes are retained for backwards compatibility. The new marker classes have a slightly different constructor taking the vector as the first argument and the params as the second. Along with this change a newmove
method has been added toT5.Marker
to allow moving the marker and having the display updated appropriately. -
BREAKING CHANGE
T5.Marker.drawMarker
method now separates thexy
parameter which used to be aT5.Vector
into two separate parameters for performance reasons. Will only cause you hassles if you have played with custom markers. -
fps
initialization parameter added to theT5.View
and by default this is set to 25 frames per second. -
Added support for setting tileBackground color for a map provider and having this carried through to the post processing for images as tiles are loaded.
-
Implementation of GeoJSON improved to support parsing FeatureCollection types in addition to basic primitives.
-
Added
T5.XY
module to take on the majority of theT5.V
functions as it is more correct as we weren't really dealing with vectors but rather simple coordinates. The sample logic has been applied in the geo space, andT5.Geo.GeoXY
replaces theT5.Geo.GeoVector
class. -
Added the ability to parse Point information from GeoJSON
-
PINCH T5.ViewState renamed to ZOOM
-
T5.Style module created to unify the various style functions (T5.applyStyle, T5.loadStyle, etc - now use T5.Style.apply, T5.Style.load, etc).
Some pretty cool stuff in this, plus some pretty major refactoring on a few things. Essentially functionality that required a T5.Map
previously has been made to work with a T5.View
or T5.Tiler
wherever possible. This includes paths and annotations. Additionally, GeoJSON support is in the works and some early support of this can be used with Tile5, however, there is still probably more work to do in this area.
-
T5.View
autoSize parameter now instructs the view to attempt to autosize to it's parent's width and height (which makes much more sense). -
T5.Annotation
andT5.ImageAnnotation
promoted out of the geo sections of Tile5 into the core library. -
T5.MarkerLayer
created to replaceT5.Geo.UI.AnnotationsOverlay
and exposed through themarkers
property of aT5.Map
. Annotations property of the map still exists for the moment, but will be removed in 0.9.4 -
T5.PathLayer
introduced to provide a more generic abstraction for drawing paths.T5.Geo.UI.RouteOverlay
is now a very thin wrapper on top of a path layer. -
T5.Poly
andT5.PolyLayer
classes created. These are used heavily in the implementation of the preliminary GeoJSON support. Will possibly look at having theT5.PathLayer
simply wrap a poly layer - not sure... -
Added some basic styling support through the
T5.Style
class. Similar to cartagen's GSS but without the ability to execute javascript as part of the styles. Pure JSON, no executable code. -
Some refactoring of
T5.ViewLayer
to provide more conservative drawing for transparent layers. This has included the inclusion of atransparent
initialization parameter to indicate that a view layer is transparent. A little ugly but necessary at the moment. -
Some other minor (and experimental) performance improvements, including clipping the canvas context to restrict the drawing area when only some tiles required drawing in a
T5.Tiler
Maintenance release - things changed under the hood but not a lot obvious at the surface.
- Changes to drawing logic to apply the canvas context
clip()
to restrict drawing area in each cycle - Modifications to touch.js to reuse
T5.Vector
arrays rather than create new each time T5.View
performance minor performance improvements- touch.js modified to no longer raise
panInertia
events but ratherpan
events with an additional parameter indicating pan due to inertia - Fixed issue with pins dropping on right click. Touch events now ignore right button on mouse.
- Started making annotations more general so they can be applied without needing a
T5.map
(still in progress though). - Added MapBox map provider, see
tile5.mapbox.js
.
Initial Release