#1498 Easily turning off/overriding default select and temporary intent
styles
#1501 GeoRSS format tests fail in Safari
#1502 Events register method fails if listeners member is not an array
#1503 panning off for odd-sized viewport
#1504 doc review
git-svn-id: http://svn.openlayers.org/branches/openlayers/2.6@6835 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
initialization of the imageSrc property to be *before* we call the
superclass. This pullup (Closes#1475), and is the last thing I'm going
to touch before the 2.6 release. svn merge -r6749:6751 trunk branch.
git-svn-id: http://svn.openlayers.org/branches/openlayers/2.6@6752 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
ImgPath variable if it is set, because it can't be set before the
OpenLayers.js file is loaded. Move ImgPath calculation into initialize(),
so that it is picked up correctly. Thanks, fvanderbiest! (Closes#1473)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6734 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
selection. Use CSS ClassName in FF, and onselectstart attribute in IE, to
control selection. Fix inappropriate overriding of className in some Control
subclasses in order to let this work. Prevents accidental selection of controls
in IE and FF. r=euzuro. (Closes#1378)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6727 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
iframe included in a page from matching every other browser to matching IE.
Rather than try and guess what's going to happen with this in the future, at
the moment, just duplicate the data, in hopes of a more sane solution coming
along in the future for all our data loading needs.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6712 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
what it supports, at the cost of breaking OpenLayers Vector layers. This looks
for a more 'basic' SVG featureset, as recommended by a Webkit developer.
r=pagameba (Closes#1463)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6581 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
calculateInRange always returns false, so the layers can never be displayed
(due to recent code): Fix calculateInRange by setting min/max res. r=tschaub,
(Closes#1457)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6572 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
visibility won't change, but the tiles will be displayed anyway, in the
wrong position. Instead, prevent tiles from being displayed at all. r=ahocevar,
(Closes#1429)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6540 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the configuration of user-preferred layer options in order to allow
configurability of options like buffer, ratio, etc. r=ahocevar (Closes#1411).
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6534 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
destroy slider even though it was never created). Thanks to the tests we
caught it, but this patch needs reworking.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6516 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
various chunks. In the future, we'll use this to have a single control
integrating panzoom and panzoombar, but not quite yet. Revamped patch
from kkempfer (thx!) with tests. r=me (Closes#754)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6514 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
their load events fire by adding an 'unload' event to the tile, and calling
it from the places where we're about to stop listening to events. In the longer
term, it might make sense to have this be automatic, but this resolves issues
with map resizes screwing with tile events, and reverts a previous,
incomplete solution to solve a problem with untiled tiles not resizing when
the map size changes. r=ahocevar, checked out by bartvde (Closes#1417)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6495 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
in KML styles. This fixes issues reported with the location of icons when
using KML styling. r=me (Closes#1426)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6494 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
mousewheel. Original from sbenthall (yay), example and more code from me, tests
from elem. r=elemoine. (Closes#1339)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6462 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
designed to help performance with non-tiled layers. Patch from madair to
take advantage of this in OpenLayers. Thanks Mike. r=me, (Closes#995)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6438 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* Transform bbox back to layer projection
* Transform commits back to layer projection
r=tschaub, (Closes#1406)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6422 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
'beforefeaturemodified' triggered when a feature is selected to be modified,
'featuremodified' triggered when a feature has been modified,
'afterfeaturemodified' triggered when a feature is finished being modified
r=tschaub (Closes#1358)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6413 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
moves. This includes fixing pantween to set playing to false after it is
done, and fixing the map to store its dragging state again so we can use
it to figure out when a move has started.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6398 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* new convenience method addUniqueValueRules in OL.!StyleMap. This can actually be used to achieve what I was trying to show in the example of this ticket's description.
* some refactoring of OL.Style to remove duplicate code (with tests)
* a new example showing how to add a "unique value" legend to a point layer using the new addUniqueValueRules method
* Rule.symbolizer can now also be just a symbolizer, instead of a hash of symbolizers keyed by "Point", "Line", "Polygon". This will make things even simpler (as can be seen in the styles-unique.html example)
r=tschaub (closes#1373)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6396 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* replaced some German terms with English terms that should be more familiar to the average German speaking user
* removed translations for console messages (which are usually only read by developers), because too much translation of code-related information does not help in understanding a problem
* apply defaults from Lang["en"] to avoid ending up with dictionary keys in messages.
r=me (closes#1367)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6318 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
spitting out a string, not an object, so this patch removes the
Ajax.serializeToString on the string which was breaking. r=tschaub
(Closes#1355)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6314 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
controlling mechanism, to reduce code duplication between Grid/KaMap/other
layers that need a different grid origin. r=euzuro (Closes#1349)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6231 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
OpenLayers.loadURL. Makes it easier to write more complex
apps that require ajax.request stuff without duplication
of code. r=elemoine (Closes#1350)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6184 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
directory to deploy when depending on features which use CSS, and make it clear
how to override the CSS in OpenLayers, include <link rel> ags in all examples.
(Closes#884)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6145 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
moveTo. In moveTo, we also have knowledge of whether the event was fired
through setCenter, allowing us to know the difference between an 'internal'
move and an external one.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6099 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
and FF. There is probably more to this, but we can solve those issues as they
come up: going with this one as is for now. (Closes#1111)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6023 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
stopClick is true, clicks handled by the feature handler don't propagate to
other click listeners; otherwise handled clicks do propagate. The same kind of
rule applies to stopDown and stopUp. These properties default to true. Thanks
to Attila Csipa for expressing the need for this feature and cooking up the
first patch. r=tschaub. (closes#1266)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5976 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
you create two select feature controls on the same vector layer, one with
hover:false that handles geometry type A only, and the other with hover:true
that handles geometry type B only, then if you click on a geometry of type A
and moves out of that geometry, the second control will unselect it. r=tschaub
(closes#1221)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5975 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
complete callback. Thus, the drag feature control won't detect a mouse-out on
that vertex and won't deactivate its drag handler. This causes errors because
the drag feature control has a feature to drag but that feature is destroyed
(feature.geometry is null). To prevent this, we make resetVertices explicitely
call outFeature on the drag feature control if the control has a feature to
drag. tschaub did most of the investigation on the problem. r=tschaub,me
(closes#1235)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5974 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
context, but the apache license requires us to mention it explicitly.
(No functional changes.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5971 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
With this patch you should no longer see tiles loading if your layer is out of
range or not visible. Hopefully! r=crschmidt (closes#937)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5913 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
replace it was somewhat lacking. This changes the behavior such that
using hte drag handler does not totally disable text selection in IE.
Patch from Bart, r=me (Closes#906)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5911 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
adverse affect on the examples, is documented in the 2.6 release notes,
and will allow for easier display of built-in browser tooltips for
controls. r=elemoine (Closes#1303)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5907 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
MousePosition control in order to allow easier changes in formatting at
the application level (with less duplication of code). Patch from
Kleptog, r=me. (Closes#778)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5906 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
tests, examples, modification to proxy.cgi, etc. This should allow one
to build an OpenLayers based OpenStreetMap editor with some effort, and
makes it trivially simple to drop OpenStreetMap data from the API into
your OpenLayers application. r=ahocevar,elemoine (Closes#1271)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5902 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
when it should load tiles and when it shouldn't. As reported in #937
OpenLayers doesn't behave properly today, it breaks Test 1 and Test 3
of this manual test.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5901 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
of its select feature control and passes it the current selected feature (if
any). If that selected feature is destroyed between the time it was selected
and the time the modify feature control is deactivated, the unselect method of
the select feature control will attempt to draw it on the layer while it no
longer has a geometry (it's destroyed!). This patch prevents this from
happening. Thanks to tlpinney for reporting the bug and helping on its
evaluation. r=tschaub (closes#1281)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5897 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
for following up on this, and to tschaub for reminding us of the right way
to do things. r=pagameba (Closes#1262)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5865 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
for the definition of a 'projection' option on a layer. IF this projection
object exists, it will be used to create the format's internal/external
projection options, making it such that any data loaded will be reprojected
to the map's projection automatically. r=pagameba (Closes#1273, #1225, #1269)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5828 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
modification I'd forgotten about. take hover off to more closely resemble the
boxes-vector example.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5820 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
tschaub. -10 points for bad pun, +10 points for catching this in his review
of the SLD code. r=me (Closes#1223)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5536 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the wrong DOM element. This fixes tests in Webkit-based browsers
and FF3, which enforces this constraint. r=tschaub (Closes#1219)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5528 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
Spherical mercator example now makes use of this, displaying coordinates
in lon/lat instead of meters, and permalink/argparser now work in lon/lat
as well. this functionality will make using SphericalMercator easier for
a number of applications.
r=tschaub (Closes#1036)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5519 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
externalProjection properties. These allow for the reprojection of data --
OpenLayers users with SphericalMercator get this built in for EPSG:900913, and
other users can use the external proj4js library available from MapBuilder SVN
to add support for any number of projections. This means that featres can be,
for example, transformed from a KML doc in 4326 to Spherical Mercator before
being added to a layer, making using SphericalMercator slightly more enticing.
r=elemoine
(Closes#1039)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5516 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the Layer.Google constructor, we check if the type we are given is not in the
map's list of types, and if so, add it. (Closes#1082)
r=tschaub
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5504 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
as long -- presumably, the tests are less 'interactive', so the longer
wait doesn't hurt anyone, and this should help prevent failures due to
timeouts.l
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5486 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
permission to beat me senseless for not being able to test it there first.
Note that I'm pretty sure this still doens't work with FF3.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5479 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
it or not, and #1218 will cause the behavior to change across the board,
most likely, so we'll just be slightly more accepting, since the XML prolog
is almost definitely unlikely to not matter.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5478 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the KML comes out namespaceless. Wrap the test up so that it doesn't totally
fail, and Paul is adding this to KnownIssues.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5475 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
FF2 won't work unless the map is loaded 'onload' -- but in Opera, adding
something to onload causes opera to believe that the page never finishes
loading within the test framework. FF3 works fine with this test if we
don't run it in a new window, but FF2 does not. For the time being, make
it work in our most well-supported platform -- FF2 -- and add a
FIXME to make it work in Opera.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5474 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
we still want this to b reported as a success, but log them to debug so that
people are aware the test is being skipped.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5468 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
If we do not do this, then every time we instantiate a new map using the same
div, the clientHeight as reported by the browser grows, and eventually we're
doing tests with a totally different sized window than we intended to.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5457 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
exist. Fallback to an empty string if getAttributeNS returns null. With
this change, the Format.XML test passes in Opera.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5453 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
1. Meta-refresh, set to 20 minutes.
2. 20 second page download timeout, instead of the standard 6.
3. After all tests have finished, posts results back to
http://openlayers.org/test/results.cgi , which shows the results. Failures kick
off an email (currently only to me).
To set up auto-testing for your platform, set up a machine with a browser running full
time, and open the URL:
http://openlayers.org/dev/tests/auto-tests.html?run=all
tests will be run automatically on load, and every time the page refreshes, they will
run again, recording their results each time.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5444 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
and the Y transforms just make working with the SVG directly -- for example,
with people modifying it to support text -- more difficult than it should be.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5430 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
that Andreas has been working so hard on. I think this is the single most
awesome commit I've ever had the pleasure of committing. The results of this
commit are described on http://trac.openlayers.org/wiki/Styles: essentially,
this makes it possible to style features in all kinds of fun ways based on
rules, and will also form the underlying basis for #533. Things this patch
adds:
* OL.Rule classes. These classes allow you to do tests against the propertie
of a feature, and set a style based on these properties -- so you can
compare the 'speedlimit' property of a line, and test if it is > 60, and if
it is greater than 60, render it in a different color. You can also test
combinations of rules using the OL.Rule.Logical class, and test featureids
with the FeatureID class.
* OL.Style class: The OL.Style class lets you wrap up Rules into styles that
can be used with drawFeature to draw the feature in the selected style.
* OL.Layer.Vector.drawFeature will check if the given style is an OL.Style
object, and if so, it will draw the feature accordingly.
examples/georss-flickr.html shows usage of these classes.
Many, many thanks go to Andreas for all his hard work on this: this code really
is very pretty, and includes unit tests for all the classes (and we know that I
am a big fan of tests.)
Three cheers for Andreas: Hip hip, hooray! hip hip, hooray! hip hip, hooray!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5429 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
events -- this means that if an image fails to load, it will still trigger
a loadend event, and the layer will eventually be in a state where it is no
longer waiting to load. Thanks to Andreas for the investigation! (Closes#842)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5428 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the SphericalMercator mixin register two transformations to/from EPSG:900913,
EPSG:4326. Thanks to Tim for the feedback and review. (Closes#1210)
This allows us to transform points to/from SphericalMercator
without proj4js support -- and if other projects need similar functionality,
they can write their own custom transformation functions rather than
modifying proj4js to support some custom projection.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5410 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
go ahead and commit this (relatively lighttweight) patch to the code so that
the projection library base API is there, even though for the most part, it's
not usable yet. This changes map.projection from being a string to being a
class, with a projCode on it. (Closes#1035)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5401 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
evaluated as false, passing 0.0 won't work as expected. Fix it. Spotted by
sebastien and reviewed by crschmidt. (Closes#1168)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5372 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
been fixed a while ago, but we were waiting on a test: Now that it's been
reported by four different users, I'm just going to go ahead and fix it,
grudgingly, rather than wait longer on a test. (Closes#958, #1117)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5357 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
canonical way of transforming data, and we should make sure users feel
comfortable using it.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5350 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
nothing else. This fixes the fact that you can't use client side opacity
while including the Virtual Earth javascript. Thanks for the spot from
Jeff Yutzler. Includes a manual test. (Closes#1175)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5326 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
externalGraphic, diligently filed, investigated, and fixed by The great and
powerful Oz, er, Andreas, who is becoming my new vector rendering hero.
(Closes#1172)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5323 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
template and some context -- to be used within the SLD framework. Developed
by Andreas and Sr. Schaub. Thanks, guys!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5317 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* the ability to 'flip' the GML format xy ordering on parsing, allowing the
GML parser to parse 'real' GML in 4326 when the option is on.
* parsing of GML 'envelope' as a Polygon. this is primarily to support
the next...
* GeoRSS GML read support, using the GML format when neccesary.
Includes a comprehensive set of tests, and is really one of the better assembled
major patches from a first-time contributor I've ever seen. Thanks for the hard
work, Roald! (Closes#1109)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5238 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
and our geography doesn't, so the numbers end up off in the north-south
direction when *not* using spherical mercator. Now, if someone comes to use us
and says 'oh my! you ruined me!' we can say 'options! we love options!' and do
a rain dance. (Closes#1164)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5229 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
just so we pick up smooth dragging, and fix the broken API key (for my domain,
cough) of draggingGoogle.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5225 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
translation correctly. Also, update example to show usage, and tests to test
jpeg instead of testing png incorrectly.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@5100 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
existing popup.", reported by (and original fix provided by) Bart. Patch
reworked, and tests modified to accomodate for destruction of popup. (Closes
#815)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4927 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
catch it because they were all minimal unit tests -- so they never hooked
up features to layers with projections. This fixes the createCRSObject
function, including updated documentation, and includes tests for regression.
(Pullup #1062)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4819 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This is slightly more expensive for parsing, but leads to the ability to
load almost all KML Placemarks with geometries on the web, instead of a small
portion of them.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4797 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
API changes have made working with the Yahoo! API more painful (more errors)
but have also made available a function to change that, which we now use.
(Pullup #1052)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4793 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
though one has a style property and the other doesn't. This means that when
we pass in 'window' to pagePosition, it blows up, but it didin't before a
recent reorganization. Here, we create a short term preventative measure to
ensure that old apps don't break -- this should be fixed in 2.6.
(See #1034, #1051)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4783 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
it created after the first one. this means that the layer loadstart/loadend
functions were never being called. Fix with a patch by rdewit. (See #1045)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4760 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
#1007) This closes the last remaining bug for 2.5RC3 -- I'll release that in
the morning unless anything new pops up.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4429 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
them all by default into builds. This will achieve that. (This fixes bart's
email to the users list: "[OpenLayers-Users] OL 2.5RC1" sent this morning.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4382 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
proxy that supports post -- and his was more complete. Pull in Tim's. (This
is from the wfsv sandbox.) Thanks, Tim. (See #991)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4371 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
lat/lon/zoom/layers." Reported by bobkare (thx, bobkare!) with a patch by same,
rewritten by Schuyler, reviewed by me -- and I'm committing because Schuyler's
whitespace was bad. (RC1, here we come!)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4345 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
attempt to drag the point feature, you get errors about this.feature.geometry
being undefined. Fix this by not unsetting this.feature inside the
doneDragging. (Closes#971)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4341 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
anymore, preferring OpenLayers.Function.bind(function, object), we don't
need to provide this -- so if someone provides something different, don't
clobber it. (Closes#962)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4339 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
control addition. This should be fixed better -- specifying the index is the
wrong way to test this.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4337 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
initialize.apply is called with the arguments object, which causes an error if
an element is passed into the control." Also applied to Scale. Now fixed
with review from e-dog. (Closes#978) Fixes the only problem I found with
migrating the Boston freemap to 2.5.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4333 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
removes outdated 2.0 information (which has since moved to the wiki) and
instead acts as a release history, with pointers to the appropriate release
notes in the wiki.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4323 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
anything other than points. Both of these are resolved with the new GeoRSS
support, which supports all of GeoRSS simple. Includes tests and significant
review from Senor Schaub, and addition to the examples/vector-formats.html
file. (Closes#973)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4305 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
it out of the way. This fixes the issue reported earlier today, where the
navtoolbar left/top weren't clickable in Firefox. (Closes#972)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4301 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
applied twice. anyway, cleaned it up and made it so that i don't get a
side scroller in my browser.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4286 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
103 for (specifically, that baselayer changes always resulted in a null
attribution string), and fixes spelling. This commit makes the attribution
control work and stuff. (Closes#103)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4237 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
handler from pierre.
Confirmed that this can be tested simply by using anything with a drag handler
in IE, so it will get caught in acceptance test.
(Closes#792)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4230 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
SphericalMercator changes. Note that this explicitly does *not* include
r4182 , so as to keep changes to a single logical set: that should be
filed in a seperate bug if it can be reproduced against trunk after this
commit. Hooray for Tim, thanks for all the feedback, onward and upward!
(Closes#686)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4221 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
craft a test which exposed the lack ... until i realized with pgiraud's help
that my test was backwards to begin with. (Closes#666)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4217 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
that it was added in the Original Prototype -> No Prototype conversion --
but looking at the code, adding it was clearly a mistake. Removing
String.indexOf. (Note that this has no affect on the code: this function
would never be called, because it wasn't defined on the prototoype.)
(Closes#963)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4216 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
String.prototype.trim. (Closes#961) Note that we should also be more careful
not to clobber other library prototypes. (See #962) I'm going to check this
in to fix the bug for 2.5, and we'll work on the latter in 2.6.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4213 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
never got stuck in the apiproperties. (Commit will fix docs related
to recent question asked by user on IRC. Thanks, hobu.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4189 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
#429). With the new GoogleMercator? layer going into 2.5, we shouldn't be
needing this anyway, so turn it *off* by default, so that we don't have to
deal with the pain anymore. (Closes#881) Thx to euz for review.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4181 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
enabling mixing non-opaque vector geometries with opaque external graphics on the same vector layer
(closes#873)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4114 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
add an HTML example that can be used as an acceptance test. (Closes#863)
Thanks pierre for the research and report!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4098 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
reported by Pfirter Lukas. (Closes#849) This is solving a general problem
with overlays + EventPane subclass zoom changes.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4082 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
Note that this is not a complete fix, but instead a patch for 2.5:
after 2.5, this should be changed/removed when map.setCenter() is
fixed. (See #937)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4069 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the layer because we don't have a reference to the layer, but this isn't
adequately documented in the Marker.destroy api docs. (See #932)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4058 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
Default behavior stays the same, but you can now specify popupSize as a layer
option to the GeoRSS constructor. (Closes#883)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4041 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
prototype.js, this effectively replaces most of prototype's Event object with
the OpenLayers.Event object, which has undesirable results (i.e. calling
Event.observe is actually calling OpenLayers.Event.observe)." Fixed by
only creating Event is Event does not already exist. (Closes#880)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4040 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
not on WMS and WFS layers. This change, by default, makes us compliant
with the WMS spec again.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4038 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This fixes the bounds, which fixes the vml behavior in IE. (Closes #666.)
Hooray, no more devil ticket.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4036 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
problems on destroy()/page unload, after all the tests had been run. Thanks
for the review, tschaub. (Closes #923.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@4035 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
to finish this one up. All commits are in comments, so a review doesn't seem
strictly neccesary. This closes#918 and fixes all the copyrights that I could
find in the code.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3984 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the VE Layer unusable: 'getMa' got dropped accidentally. (Yes, I'm a rebel,
I'm committing without a ticket, because this is obvious and I feel like it.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3793 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
support was added, tested, and documented by Andreas Hocevar, and I want to
thank him for the work he put into this patch. It looks pretty great. (This
is from ticket #736.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3729 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
has been done in the NaturalDocs branch back to trunk. Thanks to everyone who
helped out in making this happen. (I could list people, but the list would
be long, and I'm already mentally on vacation.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3545 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
maintenance related: this cleans up a global flag (_OPENLAYERS_SFL_), replacing
it with something in the OpenLayers namespace, and adds documentation/comments
to the code here that weren't before. Approved by El Chairman Uz.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3543 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
contains >= 2 periods" from fredj, who is a wonderful contributor who not only
wrote code, and tests, but upgraded all the existing control tests, because he
is just that full of awesome. (Thanks Fred!)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3534 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
with a single line, which is useful for the places in the code where we care
about what browser we're dealing with.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3322 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
test to break, because the destroy gets called before the layer loads, so the
features are attempted to be pushed into somethig that has been set to null.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3306 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
be rethrown if the Ajax object doesn't have an onException callback set. This
should make Ajax errors a bit more obvious when they occur.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3283 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
example georss file (grabbed from the new mapufacture, which is pretty).
Thanks, penyaskito!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3208 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
getLonLatFromViewPorPx should return null if no center is set (and, in the
future, throw a debug statement out there.) Closes#715.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3162 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
between 10,000 and 40,000. (It's hard to tell, since it crashes the browser
when you try.) The resulting behavior is that the browser crashes. This
wraps these values into Pixel regions, and doesn't draw features which fall
outside of them. (This sucks, but the result is the browser not crashing.)
This closes#669, and should be improved as described in #670 for 2.5.
If for some reason you know that the browser you're on can support larger
maxPixel values, you can adjust the maxPixel private variable on the
renderer. I believe that Opera and WebKit nightlies will work fine with
a larger maxPixel value. Changing this is encouraged *only* if you
are developer working on the code, because it can totally crash browsers
in a production environment.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3071 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
tschaub. This includes tests (hooray) and fixes issues with zooming a wfs
layer while you have a feature selected.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3067 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
CSS-based styling of the cursor on the map, rather than forcing 'default' after every
action. Tested in Safari, Opera, Firefox, IE7. Patch from Andreas Hocevar, #635. Thanks!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3042 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
minor modification: because features by default do nothing at all, change
the default cursor property (keep it at null) so that users aren't confused
when clicking has no affect. Thanks for the patch.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3040 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
var from OpenLayers.Tile's constructor." This has no affects other than to
let people know now that this behavior will change in future versions of
OpenLayers. #647.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@3034 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
subcontrols. This will allow users to modify properties of the div -- for
example, adding a title element to the div. Access this property via
panel_div on the added control after addControls is called on the panel.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2973 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
always having a calculateOffset (which overwrites offset if it exists),
always have an offset. If people want calculateOffset, they can add it.
Reported by David Bitner.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2962 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
also reported on the users mailing list. The problem appears to be that Firefox
has poor support for circles of very small radius -- below about .0002. Since
units were in geographic units, this just didn't work so well. So:
* Change coordinate space to be pixel based.
* Make all x/y operations divided by resolution
* add getComponentsString, getShortString helpers
* Redraw nodes totally on every 'reprojectNode' call
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2960 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
map.setBaseLayer() to use it on every base layer change, regardless of whether
the numeric zoom level itself actually changes. Includes test. Fixes#450.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2952 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* Add a 'style' property to the layer.
* When a feature is added to a layer, either uses the style on the
layer, or uses the default feature style.
* Add test to Layer.Vector for this funcionality
* Adds a preFeatureInsert hook to change a feature *before*
drawing it.
* Change openmnnd demo to include the use of preFeatureInsert
and style attribute on layer.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2949 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
the innerHTML still prevents the memory leak, but unregistering in this way
doesn't do the right thing. remove it.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2926 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
memory associated with those images. This completes #581, and reduces the
memory used by applications where adding and removing of many markers
is used.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2925 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
but it's not working for me at the moment, so I'm going to trust that the
rest of our testing process will find this at the moment, since the panzoom
is obvious enough that people will see it if it breaks :)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2922 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
* code was only ever removing the first event listener from each element
on unload cache (for loop instead of while)
* code was frequently not removing observers because their associated
elements have already been removed
These two are fixed by this patch. Combined with the previous commits to
setting events, this should fix the memory leaks demonstrated by the 'drip'
tool for IE.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2913 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
events. This removes a number of minor memory leaks with creating/destroying
popups, layers, features, and markers.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2894 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
Woodbridge, tests written by Paul Spencer and some reworking done. Thanks
to both Paul and Steve for this code. (Closes #526.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2891 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
mousewheel functionality we had in earlier releases in a similar way, rewritten
for handlers. (The benefit of handlers in this case is that handlers are
write-once, use many, so the next mousewheel thing we get will *also* be able
to use this code.)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2877 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
tests against the current output -- you may not break backwards compaatibility,
but that doesn't mean your functionality works! Fix broken mousetoolbar test.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2783 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
should be used in all library code. This patch replaces all uses of "$()" in
existing code. The primary reason for this is to avoid conflicts with libraries
(like Prototype) which might redefine this function differently.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2541 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
because the new map size was not set until *after* the onMapResize event.
(oops.) This way, untiled layers redraw with the correct size.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2532 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
was approved before 2.3 released, but never applied. Adds a removeMarker
function for the boxes layer, subclassing the marker default.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2302 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
in #506: tests are included to test that the links are properly created
for Atom 1.0 content (with a data sample provided in the patch).
Thanks, Sean!
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2256 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
this change does not affect the input or output of the function it is changing,
no test is neccesary. Patch from tschaub in #481.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2240 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
other than WMS. It should do this for any Grid layer. Ticket #496 includes
a patch for this: it adds a mergeNewParams call at the Layer.Grid level,
(subclassing Layer.HTTPRequest) which reinits the tile grid. This commit
also includes tests for this functionality. Since testing directly
on the Grid layer doesn't work (it's meant to be subclassed), we need to
instead pick a second layer to test -- in this case, ka-Map. Thanks to
Bill Woodall for the patch.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2237 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
is important is that the WMS spec specifies that you should seperate layer
names with a ",", and we were encoding that, so compliant WMSes would attempt
to find a single layer with ","s in the name, instead of grabbing multiple
layers. The new way to specify multiple layers is to set:
layers: ['global_modis','landsat']
or the like.
Includes tests, signoff from SDE.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2232 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
in Tile/Image.js. This is, for the moment, a manual test, though once we solve
the problem it will hopefully be possible to turn this into an automated
test.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2206 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
IE6, FF, Moz, Opera, IE7, Safari.
This may not work in all situations. It's included in util for utility, but
it is possible it may fail in some cases in some environments. If you find
this to be the case, please open a bug and we will work to resolve it.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@2162 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
OpenLayers contains a number of helper functions for working with AJAX.
* Methods
OpenLayers.loadURL({String|uri}, {String|params}, {Object|caller}, {function|onComplete}, {function|onFailure}) -- none -- This function sends an XMLHTTPRequest to a remote site, specified by URI, with the params string given as the params argument. Caller is bound as 'this' to the function specified by either onComplete or onFailure.
OpenLayers.parseXMLString({String|text}) -- {AJAXResponse} -- Accepts a block of text, and creates a DOM response document from the text.
* Parameters
OpenLayers.ProxyHost -- When initiating an AJAX request, any URL that is absolute is prefixed with OpenLayers.ProxyHost. The ProxyHost is designed to accept a URL and return the content, in an effort to work around cross-browser security restrictions. This defaults to null, but if you wish to access content from another domain that Javascript would restrict access to, you must set this to be the URL which will accept a URL encoded version of the passed URL and return the content at that URL. An example is available as proxy.txt in the examples/ directory.
This class represents a bounding box. Data stores as left, bottom, right, top floats.
* Constructor
OpenLayers.Bounds(left, bottom, right, top) -- Create new Bounds.
* Methods
clone() -- {OpenLayers.Bounds} -- Return copy of the current bounds.
toString() -- {String} -- Return bounds as string.
toBBOX() -- {String} -- Return bounds as simple string, usable for WMS.
getWidth() -- {float} -- Return width of bounds.
getHeight() -- {float} -- Return height of bounds.
getSize() -- {OpenLayers.Size} -- Return size of bounds.
getCenterPixel() -- {OpenLayers.Pixel} -- Return center of bounds as pixel.
getCenterLonLat() -- {OpenLayers.LonLat} -- Return center of bounds as LonLat.
equals({OpenLayers.Bounds|bounds}) -- {Boolean} -- whether or not the bounds are equivilant.
add({float|x}, {float|y}) -- {OpenLayers.Bounds} -- Shift bounds by x and y.
contains({float|x}, {float|y}, {Boolean|inclusive}) -- {Boolean} -- Return Whether or not the passed-in coordinates are within this bounds
containsBounds({OpenLayers.Bounds|bounds}, {Boolean|partial}, {Boolean|inclusive}) -- {Boolean} -- Returns whether or not the passed-in OpenLayers.Bounds object is contained within this bounds. partial indicates whether bounds must be contained or only overlap. Inclusive determines whether border is included.
determineQuadrant({OpenLayers.LonLat|lonlat}) -- {String} -- Determine which quadrant the LonLat is in. Returns combination of "b" or "t" and "l" or "r".
This control will by default display a small image in the upper right corner of the map. When clicked, this image expands into a control which allows one to select between multiple types of layers, seperated into two types: Base Layers and Overlays. Only one base layer can be selected at a time, and is enforced by a radio button control being used. Multiple overlays can be selected at once, and a checkbox control is visible for this functionality.
* Constructor
OpenLayers.Control.LayerSwitcher({Object|options}?) -- Creates a new control.
* Methods
maximizeControl() -- none -- Expand the layer switcher control.
minimizeControl() -- none -- Close the layer switcher control.
* Parameters
position -- (inherited from {OpenLayers.Control}) {OpenLayers.Pixel} to use as the top-left corner of the control div, relative to the map area.
activeColor -- The color to use for the background of the layer switcher div.
ascending -- Ascending determines whether layers are added to the layer switcher in ascending or descending order. If ascending is true, the lowest layer is appended to the list first. If ascending is false, the lowest layer is at the very bottom of the LayerSwitcher. Default is true.
Control to set up mouse handling. This includes clicks, double clicks, scrollwheel events, and mouse movement. There are a number of functions which act as the default handlers for these events: if you wish to create your own mouse control which behaves differently, you should create a subclass of MouseDefaults, replacing the functions whose behavior you wish to change.
* Constructor
OpenLayers.Control() -- Creates a new control. No options available.
* Methods
defaultClick -- none -- This event takes place when a click event occurs on the map.
defaultDblClick -- none -- This event re-centers the map on the clicked location.
defaultMouseDown -- none -- This event starts a dragging event, so that the map can be dragged. If the shift key is held, it starts a 'zoombox' or rubber-band-zoom action instead.
defaultMouseMove -- none -- If a mouseDrag is in operation, this function causes the map to move to follow the cursor. If a zoombox is in place, this increases the size of the zoombox element to match the cursor.
defaultMouseUp -- none -- This function is called when a mouseup event is received, and either sets the center of the map to be the final location or zooms to the zoombox if enabled.
defaultMouseOut -- none -- This calls defaultMouseUp, so that when you mouse out of the map div, the events are stopped.
defaultWheelUp -- none -- Zooms in one level. Called by onWheelEvent
defaultWheelDown -- none -- Zooms out one level. Called by onWheelEvent.
onWheelEvent -- none -- catches the map wheel event, and handles it, zooming appropriately.
A small control which displays the Longitude and Latitude of the current mouse position, by defualt in the lower right of the map viewport.
* Constructor
OpenLayers.Control.MousePosition({Object|options}) -- Creates a new MousePosition control.
* Parameters
element -- if not null, div in which to display the MousePosition
prefix -- html to precede the longitude value (default: '')
separator -- html to separate the longitude and latitude values (default: '<br />')
suffix -- html to follow the latitude value (default: '')
numdigits -- number of digits to the right of the decimal (default: 5)
granularity -- Don't refresh display if mouse has moved more than this (default: 10)
prefix, separator, and suffix are used to format the lon/lat values.
With:
prefix = 'Lon: '
suffix = '<br />Lat: '
suffix = ''
nudigits = 3
Lon/Lat is displayed as:
Lon: 95.123
Lat: 35.456
If the mouse has never been over the map, Lon/Lat will equal 0/0. If the mouse is over the map, Lon/Lat will equal the current mouse position. If the mouse has been moved off the map, Lon/Lat will equal the value displayed at the time the mouse was moved off the map.
If the mouse is moving slowly, the Lon/Lat will refresh continuously. If the mouse is moving rapidly, the refresh of Lon/Lat will be suspended until the mouse has slowed down or stopped. (Trying to update the Lon/Lat value while the mouse is in rapid movemement makes the movement of the mouse unacceptably jerky.)
Control to set up mouse handling. This includes clicks, double clicks, scrollwheel events, and mouse movement. There are a number of functions which act as the default handlers for these events: if you wish to create your own mouse control which behaves differently, you should create a subclass of MouseToolbar, replacing the functions whose behavior you wish to change. Additionally, a toolbar of images can be clicked to start events, as well as using the keyboard shortcuts. Note that if you wish to use the MouseToolbar, you *must* add a 'controls' option to the map constructor, otherwise you will have both MouseDefaults and MouseToolbar on the map, which will not work.
* Constructor
OpenLayers.Control.MouseToolbar({OpenLayers.Pixel|position}, {String|direction}) -- Creates a new control. The direction of the control can be either "vertical" or "horizontal". The default is vertical.
* Methods
defaultClick -- none -- This event takes place when a click event occurs on the map.
defaultDblClick -- none -- This event re-centers the map on the clicked location.
defaultMouseDown -- none -- This event starts a dragging event, so that the map can be dragged. If the shift key is held, it starts a 'zoombox' or rubber-band-zoom action instead.
defaultMouseMove -- none -- If a mouseDrag is in operation, this function causes the map to move to follow the cursor. If a zoombox is in place, this increases the size of the zoombox element to match the cursor.
defaultMouseUp -- none -- This function is called when a mouseup event is received, and either sets the center of the map to be the final location or zooms to the zoombox if enabled.
defaultMouseOut -- none -- This calls defaultMouseUp, so that when you mouse out of the map div, the events are stopped.
This control provides a locator or overview map linked to another map. By default, the overview map shows up in the lower right of the main map and can be expdaned with the '+' button.
* Constructor
OpenLayers.Control.OverviewMap(opts?) -- Creates a new overview map. The opts variable is an object with various options, as described in the options section below.
* Methods
isSuitableOverview() -- {Boolean} -- Determines if the overview map is suitable given the extent and resolution of the main map.
getRectPxBounds() -- {OpenLayers.Bounds|bounds} -- An OpenLayers.Bounds which is the extent rectangle's pixel bounds (relative to the parent element).
setRectPxBounds({OpenLayers.Bounds|bounds}) -- none -- Set extent rectangle pixel bounds.
getRectBoundsFromMapBounds({OpenLayers.Bounds|lonLatBounds}) -- {OpenLayers.Bounds|bounds} -- An OpenLayers.Bounds which is the passed-in map lon/lat extent translated into pixel bounds for the overview map.
getMapBoundsFromRectBounds({OpenLayers.Bounds|pxBounds]}) -- {OpenLayers.Bounds|bounds} -- An OpenLayers.Bounds which is the passed-in overview rect bounds translated into lon/lat bounds for the overview map.
getLonLatFromOverviewPx({OpenLayers.Pixel|pixel}) -- {OpenLayers.LonLat|lonlat} -- An OpenLayers.LonLat which is the passed-in overview map OpenLayers.Pixel translated into lon/lat by the overview map.
getOverviewPxFromLonLat({OpenLayers.LonLat|lonlat}) -- {OpenLayers.Pixel|pixel} -- An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat, translated into overview map pixels
* Events
* Rectangle events
They are defined on OverviewMap.rectEvents
mouseover -- rectangle is moused over
mouseout -- rectangle is no longer mousedout
mousemove -- mouse moves inside rectangle
mousedown -- mouse button is pressed over the rectangle.
mouseup -- mouse button is released over the rectangle.
click -- mouse clicked
dblclick -- mouse double clicked
* Map events
They are defined on OverviewMap.mapDivEvents
click -- mouse clicked
* Options:
* minRatio -- The ratio of the overview map resolution to the main map resolution at which to zoom farther out on the overview map.
* maxRatio -- The ratio of the overview map resolution to the main map resolution at which to zoom farther in on the overview map.
* layers -- Ordered list of layers in the overview map. If none, then the map base layer is used.
Creates a small toolset for controlling the location of the map with panning and zooming, including four directional arrows, a zoom in and zoom out, and one button which zooms to the max extent of the map.
* Constructor
OpenLayers.Control.PanZoom({Object|options}) -- Creates a new panzoom control.
* Parameters
slideFactor -- Number of pixels by which to slide the map when a pan arrow is clicked.
Creates a small toolset for controlling the location of the map with panning and zooming, including four directional arrows, a zoom in and zoom out, and a bar on which a slider can be moved to zoom in or out by multiple stops at once.
* Constructor
OpenLayers.Control.PanZoomBar() -- Creates a new panzoombar control.
A small control which updates a "Permalink" to the map every time the viewport changes. This allows users to copy a link to a specfic map view. By default, it places itself in the lower right corner of the map. This control must be added to the map after a baselayer has been set.
* Constructor
OpenLayers.Control.Scale({DOMElement|element}?, {String|base}) -- Creates a new permalink control. The DOMElement is used, if passed, as the element on which the 'href' is set. If you prefer to put this link on an element outside of the map, set this element to an anchor element to have its href updated when the map moves. If you wish to make the link go to some other URL (for example, an editing interface rather than the current URL), the 'base' property can be used, to which the ?lat=&lon=&zoom= will be appended after the map has moved.
A small control which displays an informative scale value, a la "1:50K" , by defualt in the lower right of the map viewport.
* Constructor
OpenLayers.Control.Scale({DOMElement|element}?) -- Creates a new scale control. The DOMElement is used, if passed, to put the scale inside -- this allows you to have the scale displayed in some location outside the map.
Base class from which controls are derived. Controls are elements of the map used to control things like zoom, layer status, or to provide information to the user about the status of the map, such as scale or copyright information.
* Constructor
OpenLayers.Control({Object|options}?) -- Creates a new control. The options here are used to control parameters of the control. The base control defines only "position", which is designed to be an {OpenLayers.Pixel} which is the top-left of the location of the control relative to the map div.
* Parameters
position -- {OpenLayers.Pixel} to use as the top-left corner of the control div, relative to the map area.
Icon is used as the visual representation of a Marker. Creating such a representation requres up to three parts: An Icon URL, a size, and an offset. The icon URL is a pointer to an image to use as an icon. The size is the size of the image, as an {OpenLayers.Size} object, and the offset is the position of the top left corner of the image in pixels, relative to the latitude and longitude of the Marker.
* Constructor
OpenLayers.Icon({String|url}, {OpenLayers.Size|size}, {OpenLayers.Pixel|offset}) -- creates a new icon.
* Methods
clone() -- {OpenLayers.Icon} -- Create an exact copy of the icon.
this.node.removeSelf();returnfalse;},"content":function(){varstr;try{str=this.evalInScope(this.nodeValue);}catch(err){Jugl.Console.error("Failed to eval in node scope: "+
this.nodeValue);throwerr;}
this.removeSelf();varchild=newJugl.Node(this.template,document.createTextNode(str));this.node.removeChildNodes();this.node.appendChild(child);returntrue;},"replace":function(){varstr;try{str=this.evalInScope(this.nodeValue);}catch(err){Jugl.Console.error("Failed to eval in node scope: "+
this.removeSelf();returntrue;},"omit-tag":function(){varomit;try{omit=((this.nodeValue=="")||!!(this.evalInScope(this.nodeValue)));}catch(err){Jugl.Console.error("Failed to eval in node scope: "+
returnchildren;},removeChildNodes:function(){while(this.element.hasChildNodes()){this.element.removeChild(this.element.firstChild);}},removeChild:function(node){this.element.removeChild(node.element);returnnode;},removeSelf:function(){this.element.parentNode.removeChild(this.element);},appendChild:function(node){this.element.appendChild(node.element);},insertAfter:function(node){varparent=this.element.parentNode;varsibling=this.element.nextSibling;if(sibling){parent.insertBefore(node.element,sibling);}else{parent.appendChild(node.element);}},insertBefore:function(node){varparent=this.element.parentNode;parent.insertBefore(node.element,this.element);},process:function(){varattribute;varkeepProcessing=true;varseries=["define","condition","repeat"];for(vari=0;i<series.length;++i){attribute=this.getAttribute(series[i]);if(attribute){try{keepProcessing=attribute.process();}catch(err){Jugl.Console.error("Failed to process "+
series[i]+" attribute");throwerr;}
if(!keepProcessing){return;}}}
varcontent=this.getAttribute("content");if(content){try{content.process();}catch(err){Jugl.Console.error("Failed to process content attribute");throwerr;}}else{varreplace=this.getAttribute("replace");if(replace){try{replace.process();}catch(err){Jugl.Console.error("Failed to process replace attribute");throwerr;}}}
varattributes=this.getAttribute("attributes");if(attributes){try{attributes.process();}catch(err){Jugl.Console.error("Failed to process attributes attribute");throwerr;}}
if(!content&&!replace){this.processChildNodes();}
varomit=this.getAttribute("omit-tag");if(omit){try{omit.process();}catch(err){Jugl.Console.error("Failed to process omit-tag attribute");throwerr;}}},processChildNodes:function(){varelement,child;varchildren=this.getChildNodes();for(vari=0;i<children.length;++i){try{children[i].process();}catch(err){Jugl.Console.error("Failed to process "+
request.send(null);},createXMLHttpRequest:function(){if(typeofXMLHttpRequest!="undefined"){returnnewXMLHttpRequest();}elseif(typeofActiveXObject!="undefined"){returnnewActiveXObject("Microsoft.XMLHTTP");}else{thrownewError("XMLHttpRequest not supported");}}};})();
Designed to act as a super-class for layers which need OpenLayers to intercept click events. Google Maps and Microsoft Virtual Earth both use this functionality, in order to allow for actions like the rubber-band-zoom/zoombox functionality. This Layer is not designed to be used on its own, but instead to act as an intermediary between the user and layers which have their own click handlers.
* Constructor
OpenLayers.Layer.EventPane(name, options) -- Only designed to be used by subclasses.
GeoRSS layer. Pass a name and location of a GeoRSS file on the web, and a marker will be added to the map for each item in the GeoRSS feed. Uses OpenLayers.loadURL to load the XML, parses the data, and adds markers to the map. The GeoRSS layer supports 1.0 and 2.0 in IE and Firefox, and supports 2.0 in Safari. (Ticket #111 explains the reason for this difference.)
* Constructor
OpenLayers.Layer.GeoRSS(name, url) -- Name and location of GeoRSS XML file.
* Methods
parseData(ajaxResponse) -- none -- Callback for the loadURL call. This function parses the XML for the GeoRSS feed, creating markers for the data and adding a popup to each marker. It populates an array of features as 'this.features'.
markerClick(Event) -- none -- Action to perform when a marker is clicked.
clearFeatures() -- none -- Removes all features and markers from the map.
The Google Layer in OpenLayers allows you to include Google Maps functionality in your OpenLayers maps. In order to use the Google Layer, you must first obtain an API key for Google Maps, and include the Google Maps API script in your page. Once you have done this,
* Constructor
OpenLayers.Layer.Google(name, options?) -- Constructor for Google layer. Accepts name and options.
* Methods
getOLLonLatFromGLatLng(GLonLat) -- {OpenLayers.LonLat} -- Convert from GLatLon to OpenLayers LonLat
getGLatLngFromOLLonLat({OpenLayers.LonLat|lonlat}) -- GLatLon -- Convert From OpenLayers LonLat to GLatLon
getOLPixelFromGPoint(GPoint) -- {OpenLayers.Pixel} -- Convert from GPoint to OpenLayers.Pixel
getGPointFromOLPixel({OpenLayers.Pixel|pixel}) -- GPoint -- Create GPoint from OpenLayers Pixel.
* Parameters
type -- one of G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP, used to choose the type of map to display. (See <a href="http://www.google.com/apis/maps/documentation/reference.html#GMapType">GMapType in the Google documentation</a> for more.)
The Grid layer is the base layer for almost all image layers. This is a subclass of HTTPRequest.
* Constructor
OpenLayers.Layer.Grid(name, url, params, options) -- URL is the base URL to the layer. Params is a set of params to be included in the HTTP Request. Options is a set of options, extending the parameters of the layer.
* Methods
getGridBounds() -- {OpenLayers.Bounds} -- return geographic extent of the grid of tiles.
_initTiles() -- none -- Used to initialize the tile grid, creating image elements as neccesary and filling them with the correct images.
spiralTileLoad() -- none -- Called from _initTiles. Rotates through the grid filling in the images for the grid.
clone() -- {OpenLayers.Layer.Grid} -- create a clone of the layer. Subclassed from {OpenLayers.Layer}.
setMap(map) -- none -- Set the map property of the layer. Also set the parameters which are inherited from the map. This is also where the tileSize is retrieved from the map. Subclassed from {OpenLayers.Layer}.
moveTo({OpenLayers.Bounds|bounds}, {Boolean|zoomChanged}) -- none -- Not implemented here, but the general function called on dragging or setCenter, to move the Layer to a new geographic location. Subclassed from {OpenLayers.Layer}.
getResolution() -- {float} -- Return the current resolution of the map, in units/pixel. Subclassed from {OpenLayers.Layer}.
getExtent() -- {OpenLayers.Bounds} -- Return the geographic extent of the current map viewport. Subclassed from {OpenLayers.Layer}.
getZoomForExtent({OpenLayers.Bounds|bounds}) -- {Integer} -- return the integer zoom which most closely matches the passed bounds. Subclassed from {OpenLayers.Layer}.
getLonLatFromViewPortPx({OpenLayers.Pixel|pixel}) -- {OpenLayers.LonLat} -- Returns an OpenLayers.LonLat which is the passed-in view port OpenLayers.Pixel, translated into lon/lat by the layer. Subclassed from {OpenLayers.Layer}.
getViewPortPxFromLonLat({OpenLayers.LonLat|lonlat}) -- {OpenLayers.Pixel} -- Returns An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat, translated into view port pixels. Subclassed from {OpenLayers.Layer}.
* Parameters
buffer -- Default 2. Number of tiles around the central map area which OpenLayers will preload so that dragging goes more smoothly.
* Subclassed from OpenLayers.Layer
isBaseLayer -- This determines whether the layer is a base layer or an overlay. Only one Base Layer can be displayed on the map at once. Default is false.
projection -- SRS string to describe the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxExtent -- an OpenLayers.Bounds for the layer. This is the maximum geographic extent of the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxResolution -- The number of degrees per pixel at zoom level 0. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxZoomLevel -- The maximum zoom level for the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
minScale -- The scale at zoom level 0. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxScale -- The scale at the highest zoom level. If this is set on the map before the Layer is added to the map, it will inherit from the map.
units -- The units the map is projected into. If this is set on the map before the Layer is added to the map, it will inherit from the map.
Sublass of Layer used for services which require initiating multiple HTTPRequests.
* Constructor
OpenLayers.Layer.HTTPRequest(name, url, params, options) -- URL is the base URL to the layer. Params is a set of params to be included in the HTTP Request. Options is a set of options, extending the parameters of the layer.
* Methods
initResolutions() -- none -- Based on the current minScale/maxScale/maxResolution/numZoomLevel/scales/resolutions parameters, initializes an array of 'zoom levels' as this.resolutions, which are then used as an index into when zooming.
getFullRequestString(newParams) -- {String} -- Returns the full request string for a combination of the defaults on this layer and the parameters passed via newParams.
* Options
reproject -- If reproject is true, then the layer will alter the bounding boxes of its tiles to be based on the geographic location of the pixel bounds in the base layer. This is important for reprojecting WMS tiles onto something like Google Maps. Tile locations are calculated, and then when creating the tile request, the bounding box is adjusted to match the bounding box of the base layer at that location.
The Image Layer allows you to load a single image and use it as a layer in your
map.
* Constructor
OpenLayers.Layer(name, url, {OpenLayers.Bounds|bounds}, {OpenLayers.Size|size}, {options}) -- Image Layer constructor requires a name, URL of the image, geographic bounds of the image, pixel size of the image, and an optional options parameter.
The base class for all vector drawing, The OpenLayers.Layer.Markers layer is the primary way to get annotations into your map.
* Constructor
OpenLayers.Layer.Markers(name, options) -- Name and options for layer.
* Methods
addMarker({OpenLayers.Marker|Marker}) -- none -- Adds a marker to the layer, sets the map object on the marker, and calls drawMarker on the marker.
removeMarker({OpenLayers.Marker|Marker}) -- none -- Remove the marker from the layer and map.
clearMarkers() -- none -- Remove all markers from the layer with removeMarker.
redraw() -- none -- Redraw all markers. Used so that markers can change their position when a base layer changes.
drawMarker -- none -- Call marker.draw(px), which passes the Pixel of the latitude/longitude in the map viewport to the marker. adds the marker to the div, and marks the marker as drawn.
The Virtual Earth Layer in OpenLayers allows you to include Virtual Earth Maps in your OpenLayers maps. In order to use the Virtual Earth Layer, you must first include the Virtual Earth API script in your page. Once you have done this, simply add the layer to your map.
* Constructor
OpenLayers.Layer.VirtualEarth(name) -- Constructor for Virtual Earth layer. Accepts name.
* Methods
getOLLonLatFromVELatLng(VELatLon) -- {OpenLayers.LonLat} -- Convert from VELatLon to OpenLayers LonLat
getVELatLngFromOLLonLat({OpenLayers.LonLat|lonlat}) -- VELatLon -- Convert From OpenLayers LonLat to VELatLon
getOLPixelFromVEPoint(Msn.VE.Pixel) -- {OpenLayers.Pixel} -- Convert from VEPoint to OpenLayers.Pixel
getGPointFromOLPixel({OpenLayers.Pixel|pixel}) -- Msn.VE.Pixel -- Create Msvn.VE.Pixel from OpenLayers Pixel.
The WMS layer allows one to connect to a WMS server to obtain images. Params are available as a hash on the layer object, however, all keys are upper-cased automatically for maximum compatibility with WMS servers, so a parameter which is set as 'layers' will be uppercased to LAYERS. Where 'layer' is your Javscript variable for the layer, layer.params.LAYERS is the value of the layers param as set by the constructor.
If you wish to change params, you should use mergeNewParams, rather than accessing the parameters directly.
* Constructor
OpenLayers.Layer.WMS(name, url, params, options) -- URL is the base URL to the layer. Params is a set of params to be included in the HTTP Request. Options is a set of options, extending the parameters of the layer.
* Methods
getURL({OpenLayers.Bounds|bounds}) -- {String} -- Returns a WMS URL for the given bounds based on the properties of the layer.
All other methods are inherited from {OpenLayers.Layer.Grid}
* Options
isBaseLayer -- WMS layers default to being base layers unless one of their parameters is 'transparent':'true'.
Layers are the most important and central aspect of OpenLayers. They are the
core functionality for the software: Everything that ends up on the map comes
from a layer. The base layer class is designed to be subclassed by any number
of different layers.
* Constructor
OpenLayers.Layer(name, options) -- All layers have a name as their first param. This name is used to display the layer in the LayerSwitcher, and for other purposes. The options parameter is used to replace any parameters of the Layer which need to be different.
* Methods
clone() -- {OpenLayers.Layer} -- create a clone of the layer.
setName({String|name}) -- none -- Set the name of the layer to something different.
moveTo({OpenLayers.Bounds|bounds}, {Boolean|zoomChanged}) -- none -- Not implemented here, but the general function called on dragging or setCenter, to move the Layer to a new geographic location.
setMap(map) -- none -- Set the map property of the layer. Also set the parameters which are inherited from the map.
getVisibility() -- {Boolean} -- Return true or false based on visibility of the layer.
setVisibility({Boolean|visible}) -- none -- Set the layer visibility, and trigger the appropriate events.
getResolution() -- {float} -- Return the current resolution of the map, in units/pixel.
getExtent() -- {OpenLayers.Bounds} -- Return the geographic extent of the current map viewport.
getZoomForExtent({OpenLayers.Bounds|bounds}) -- {Integer} -- return the integer zoom which most closely matches the passed bounds.
getLonLatFromViewPortPx({OpenLayers.Pixel|pixel}) -- {OpenLayers.LonLat} -- Returns an OpenLayers.LonLat which is the passed-in view port OpenLayers.Pixel, translated into lon/lat by the laye
getViewPortPxFromLonLat({OpenLayers.LonLat|lonlat}) -- {OpenLayers.Pixel} -- Returns An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat, translated into view port pixels
addOptions({options})) -- none -- Change the options on the layer. This is the supported way to change properties of the layer.
* Parameters
displayOutsideMaxExtent -- Determine whether images or data are loaded outside the maxExtent. Default is false.
isBaseLayer -- This determines whether the layer is a base layer or an overlay. Only one Base Layer can be displayed on the map at once. Default is false.
projection -- SRS string to describe the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxExtent -- an OpenLayers.Bounds for the layer. This is the maximum geographic extent of the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxResolution -- The number of degrees per pixel at zoom level 0. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxZoomLevel -- The maximum zoom level for the layer. If this is set on the map before the Layer is added to the map, it will inherit from the map.
minScale -- The scale at zoom level 0. If this is set on the map before the Layer is added to the map, it will inherit from the map.
maxScale -- The scale at the highest zoom level. If this is set on the map before the Layer is added to the map, it will inherit from the map.
units -- The units the map is projected into. If this is set on the map before the Layer is added to the map, it will inherit from the map.
Instantiate class {OpenLayers.Map} in order to create a map. This is the central class in the API. Everything else is auxiliary.
* Constructor
OpenLayers.Map(container, opts?) -- Creates a new map inside of the given HTML container, which is typically a DIV element. The opts variable is an object with various options, as described in the options section below.
* Methods
* Layer Management
addLayer({OpenLayers.Layer|layer}) -- none -- adds a layer to the list currently set for the map.
addLayers([ {OpenLayers.Layer|layer}, {OpenLayers.Layer|layer} ]) -- none -- Adds multiple layers to a map.
removeLayer({OpenLayers.Layer|layer}) -- none -- Remove a layer from the map.
setBaseLayer({OpenLayers.Layer|layer}) -- none -- Sets a new base layer for the map. The provided layer should have already been added to the map. Changing the base layer causes all other base layers to be turned off, and all overlays to reproject themselves.
* Control Management
addControl({OpenLayers.Control|control}) -- none -- Adds a control to the map.
* Popup Management
addPopup({OpenLayers.Popup|popup}, {Boolean|exclusive}) -- none -- adds a popup to the map. If exclusive is set to true, then all other popups are closed first.
removePopup({OpenLayers.Popup|popup}) -- none -- removes an existing popup from the map.
* Center management
setCenter({OpenLayers.LonLat|lonlat}, {int|zoom}) -- none -- Set the center point of the map. This then moves all the layers to the new center location as well, using each layer's 'moveTo' function. The 'zoom' is an integer from 0 to maxZoomLevel.
pan({Integer|dx}, {Integer|dy}) -- none -- Allows user to pan by a value of screen pixels
* Zoom Management
zoomTo({int|zoom}) -- none -- zoom to the given zoom level.
zoomIn() -- none -- zoom in one level.
zoomOut() -- none -- zoom out one level.
zoomToExtent({OpenLayers.Bounds|bounds}) -- none -- Set the map such that the bounds fits within the current viewport area.
zoomToMaxExtent() -- none -- Zoom such that the entire bounds of the map is contained in the viewport.
zoomToScale({float}) -- none -- Zoom as close to the given scale as possible. Scale can be given as a ratio (1/24000) or as the denominator of the scale value (24000). zoomToScale will find the zoom level which most closely fits the requested scale and set that as the current zoom level.
* Current Map Information
getLonLatFromPixel({OpenLayers.Pixel|pixel}) -- {OpenLayers.LonLat} -- Returns OpenLayers.LonLat corresponding to the given OpenLayers.Pixel, translated into lon/lat by the current base layer
getPixelFromLonLat({OpenLayers.LonLat|lonlat}) -- {OpenLayers.Pixel} -- Returns OpenLayers.Pixel corresponding to the given OpenLayers.LonLat, translated by the current base layer
getCenter() -- {OpenLayers.LonLat} -- Returns a LonLat for the current center of the map
getZoom() -- {Integer} -- Returns the current zoom level as an integer
getExtent() -- {OpenLayers.Bounds} -- Returns a Bounds object which represents the geographic bounds of the current viewPort.
getSize() -- {OpenLayers.Pixel} -- Returns the pixel size of the current map window.
getTileSize() -- {OpenLayers.Size} -- Returns tile size currently set for map.
getResolution() -- {float} -- Returns the current resolution (units/pixel) of the map
getZoomForExtent({OpenLayers.Bounds|bounds}) -- Zoom level in which the given bounds will fit -- zooming to this level and setting the center of the map in the center of the bounds will always fit the given bounds in the map.
* Default Map Information
getMaxResolution() -- {float} -- returns The Map's Maximum Resolution, the units/pixel at zoom level 0. The default is 1.40625, to match the approximate MaxResolution used by the commercial providers.
getMaxExtent() -- {OpenLayers.Bounds} -- Return the max extent of the current base layer as defined on the layer. The default maxExtent for OpenLayers is -180,-90,180,90
getMaxZoomLevel() -- {int} -- Returns the maximum zoom level that can be reached in the map for the current base layer
getMinZoomLevel() -- {int} -- Returns the minimum zoom level that can be reached in the map for the current base layer
* Events
addlayer -- a layer is added to the map
removelayer -- a layer is removed from the map
changelayer -- a layer has some property of it, typically visibility, changed.
changebaselayer -- the current base layer changes
movestart -- start of a movement in the map
move -- end of movement in a map. this happens while te mouse is dragging as well as for all other events.
moveend -- end of movement in a map, but does not happen when the 'dragging' flag is set, as is the case when the move event is in the middle of a drag action.
zoomend -- end of a zoom action
mouseover -- map is moused over
mouseout -- map is no longer mousedout
mousemove -- mouse moves inside map
dragstart -- drag action starts
dragend -- drag action ends
* Options:
* controls -- an array of control objects to be added to the map. The default is [new OpenLayers.Control.MouseDefaults(), new OpenLayers.Control.PanZoom()]
* projection -- used by WMS layers, should be an SRS identifier.
* maxZoomLevel -- The number of zoom levels to use in the map.
* maxExtent -- {OpenLayers.Bounds} to be used as the maximum extent of a map. The center of the map can not leave the maxExtent of the map when dragging.
* maxResolution -- The units/pixel measurement at zoom level 0. Default is 1.40625
* resolutions -- An array of resolutions to be used as an index when zooming. Overrides maxZoomLevel and maxResolution if present.
* minScale -- The smallest scale value. minScale is preferred over maxResolution, if present.
* maxScale -- The maximum scale the map should include. Overrides maxZoomLevel if present.
* units -- The units of the map. Defaults to degrees. Neccesary when using scale in any way.
* scales -- An array of scale values. Overrides maxResolution, maxZoomLevel, resolutions, and min/max scale if present.
Instantiate class {OpenLayers.Marker} in order to create a marker.
* Constructor
OpenLayers.Marker({OpenLayers.LonLat|lonlat}, {OpenLayers.Icon|icon}? ) -- Creates a new marker object. This object must be added to a Marker layer and will then be displayed. The icon can be left null -- if this is the case, then the default OpenLayers icon will be used.
* Methods
onScreen() -- {boolean} -- Returns whether or not the marker is currently visible on screen.
inflate({float}) -- none -- Changes the size of the Icon by a factor of the passed float.
display({string}) -- none -- Sets the style.display property of the Icon.
The image tile is designed to hold images for all types of layers, from WMS to KaMap to WorldWind.
* Constructor
OpenLayers.Tile.Image({OpenLayers.Layer|layer}, {OpenLayers.Pixel|position}, {OpenLayers.Bounds|bounds}, {String|url}, {OpenLayers.Size|size}) -- Create a new tile, with properties passed.
The WFS tile allows you to load any number of WFS URLs into a single tile.
* Constructor
OpenLayers.Tile.WFS({OpenLayers.Layer|layer}, {OpenLayers.Pixel|position}, {OpenLayers.Bounds|bounds}, {String|urls}, {OpenLayers.Size|size}) -- Create a new tile, with properties passed. The major difference between this tile and other tiles is what it does with results: The WFS tile is designed to parse XML responses, and create features for each item in the response.
This is a class designed to designate a single tile, however
it is explicitly designed to do relatively little. Tiles store information
about themselves -- such as the URL that they are related to, and their
size - but do not add themselves to the layer div automatically, for
example.
* Constructor
OpenLayers.Tile({OpenLayers.Layer|layer}, {OpenLayers.Pixel|position}, {OpenLayers.Bounds|bounds}, {String|url}, {OpenLayers.Size|size}) -- Create a new tile, with properties passed.
Utility class. Stores a bunch of methods and settings that don't fit anywhere else.
* Options
OpenLayers.Util.onImageLoadErrorColor -- A string to set img.style.backgroundColor to if the onerror event fires for the image (useful for 500 errors from WMS, for example).
OpenLayers.ImgPath -- A string to be used as the base for images for controls and the like. Should end with '/'.
<li>If access keys work for links in your browser, use:
<ul>
<li>i (zoom in)</li>
<li>o (zoom out)</li>
<li>n (pan north)</li>
<li>s (pan south)</li>
<li>e (pan east)</li>
<li>w (pan west)</li>
</ul>
</li>
</ul>
</p>
This is an example of using alternate methods to control panning and zooming. This approach uses map.pan() and map.zoom(). You'll note that to pan, additional math is necessary along with map.size() in order to set the distance to pan.
This example shows the use of the click handler and getLonLatFromViewPortPx functions to trigger events on mouse click.
</p>
<divid="map"></div>
<divid="docs">
Using the Click handler allows you to (for example) catch clicks without catching double clicks, something that standard browser events don't do for you. (Try double clicking: you'll zoom in, whereas using the browser click event, you would just get two alerts.) This example click control shows you how to use it.
// extended version of OpenLayers.Format.GeoRSS.createFeatureFromItem;
// adds the thumbnail attribute to the feature
functioncreateFeatureFromItem(item){
varfeature=OpenLayers.Format.GeoRSS.prototype
.createFeatureFromItem.apply(this,arguments);
feature.attributes.thumbnail=
this.getElementsByTagNameNS(
item,"*","thumbnail")[0].getAttribute("url");
returnfeature;
}
varstore=newOpenLayers.Format.GeoRSS({
createFeatureFromItem:createFeatureFromItem});
rss=store.read(req.responseText);
markerLayer.setName("Some images from Flickr");
markerLayer.addFeatures(rss);
}
</script>
</head>
<bodyonload="init()">
<h1>GeoRSS from Flickr in OpenLayers</h1>
<p>The displayed GeoRSS feed has a <tt><media:thumbnail/></tt> property for each item. An extended <tt>createFeatureFromItem()</tt> function is used to add this attribute to the attributes hash of each feature read in by <tt>OpenLayers.Format.GeoRSS</tt>. The example is configured with a style to render each item with its thumbnail image. Also, to show how rules work, we defined a rule that if the title of an rss item contains "powder", it will be rendered larger than the others.</p>
<pstyle="font-size:.9em;">This demo uses the OpenLayers GeoRSS parser, which supports GeoRSS Simple and W3C GeoRSS. Only points are currently supported. <ahref="http://trac.openlayers.org/wiki/HowToDownload">Get the code!</a></p>
<p>Check the box to draw points. Uncheck to navigate normally.</p>
<textareaid="gml"cols="80"rows="30"></textarea>
</div>
<divid="map"></div>
<divid="docs"></div>
</body>
</html>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.