35 lines
1.6 KiB
Plaintext
35 lines
1.6 KiB
Plaintext
|
|
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.
|