
Current for 6.x-2.0-alpha3

The OpenLayers module aims to add minimal abstraction in Javascript to what is
already provided by the [OpenLayers](http://openlayers.org/) Javascript library.
However, it does create certain structures that may not be immediately obvious.

# Data Storage

The module stores all settings initially under Drupal.settings.openlayers. It
does this in a slightly modified way if your server supports native JSON writing
- this basically means that, instead of using Drupal to encode the settings
array, it uses a PHP extension (written in C). This greatly increases
performance for displaying many points on maps.

# Keeping Track of Maps

The OpenLayers map object, which contains pointers to all layers, etc., is
stored with the [jQuery data() method](http://api.jquery.com/jQuery.data/),
which provides the phenomenal convenience of storing arbitrary data within the
DOM itself. This means that the map object is attached to the openlayers-map-0,
or so on, div element in your page. So, to access it, one could use a line like

    $('#openlayers-map-0').data('openlayers')

In FireBug, Safari, or Chrome.

Note that the 2.x branch strives to not duplicate map information: it exists in
the Drupal settings array and then is transformed into a map object, but after
that point, the canonical location for data about maps is in the map object.
This is for purposes of both flexibility, since the map object lets developers
access objects by better getter methods, and for the purpose of keeping
OpenLayers behaviors and layer initialization code less tied to Drupal than
before.
