Skip to content
stellaeof edited this page Jul 12, 2011 · 1 revision

Release 0.2.3

  • Add "pixelRatio" and "autoPixelRatio" parameters to TileLayer class. This sets up the TileLayer to match the native resolution of the device. If autoPixelRatio is true and the device reports its own pixel ratio, then that is used for the pixelRatio parameter. The most common alternative pixelRatio is 2.0 for the iPhone Retina display.
  • Add the replaceable parameter "${pixelRatio}" to Tile url specs. This allows the actual pixel ratio in use to be passed to the tile server. It is up to the tile server to do something intelligent with this. This most common action would be to scale font and line work by this amount.

See the sample Changing Pixel Ratio for Improved Clarity on Hi Resolution Displays for details.

The following are changelogs for prior releases made before switching to this website layout.

Release 0.2.2

Snapshot of current work.

  • Refactored click and touch event handling into single 'motion' module
  • Implemented user event handling with default fallbacks for all motion gestures by raising events on the map object (motion.click, motion.drag, motion.pinch, motion.longtap)
  • Tweaks to scroll wheel but this still needs some work
  • Default event handler for double click/tap (motion.click event with count==2) to zoom in to clicked location
  • Default event handler for drag to pan the map
  • Default event handler for pinch to perform drag and pan. This extends the previous behavior which only allowed either panning or dragging at a single time. Now in multi-touch mode, it behaves just like the native Maps.app on ios.
  • Touch support tested and confirmed working on ios and android single touch device (1.6)
  • Demo now displays overlay window with lat/lng in response to longtap and single click
  • Size is 9.9KB over the wire

Release 0.2.1

Snapshot of current work.

  • Implemented begin()/commit()/rollback() for batching map interactions together with a single display update
  • Added animation support to commit() method so that batched map updates can be animated with arbitrary timings and curves
  • Reworked tiling to fully take advantage of animation. Tiles are prefetched for the final MapState at the beginning of an animation, increasing the chances that no perceivable load time elapses
  • Added zoomIn() / zoomOut() methods to work with integral zoom levels instead of floating point
  • Added simple geocoding to demo
  • Still has some touch issues on Android webkit. Also geolocation not working and geocoding failing.
  • Size is 9.31KB over the wire

Release 0.2.0

This is a snapshot of recent refactorings and has received minimal testing. Key updates:

  • Backported API structure and many concepts from nanomaps-droid (https://github.com/stellaeof/nanomaps-droid)
  • Rewrote much of tiling code so that transitions across native zoom levels retain previews
  • Added concept of indexed layers and surfaces instead of one flat bucket for attachments
  • Started new demo page

Upcoming changes:

  • I'm still not happy with the api abstraction for markers. The ImgMarker uses a factory pattern which I like whereas the SvgMarker/EllipseMarker use a single instance per attachment. I like bits of both but they are both awkward to program. I'm going to noodle on it and try some different styles before proceeding to build out more marker types.
  • Touch state gets out of sync on my android phone after a few zooms. More work needs to be done here.
  • Support panning and zooming simultaneously in multi-touch
  • Animated transitions
  • Experiment with a scaled event layer for intercepting touch events. iPhone on the retina display seems to deliver approximately twice the granularity of touch events if the target div is at native resolution vs scale which allows much smoother scrolling

Release 0.1.0

  • This project is very young and I am developing it in tandem with a product I am building out. It works on "modern browsers" out of the box and I expect a minor effort to support IE7 and 8. Due to a design decision in the way that z-indexing is handled, the project will never support the broken z-index model of IE7 and below. Most simple maps will not have a problem with this as the natural stacking order is probably what is desired anyway, but fine stacking control will not be available in this ancient browser.

  • Touch devices are also targeted for full support but only the iPhone is supported/tested at present.

Clone this wiki locally