diff --git a/doc/authors.txt b/doc/authors.txt index f90671bc72..48dbe14177 100644 --- a/doc/authors.txt +++ b/doc/authors.txt @@ -6,5 +6,9 @@ Philip Lindsay John Frank Schuyler Erle +Patch contributors +------------------ +Corey Puffault + OpenLayers is graciously supported by MetaCarta, Inc. . diff --git a/examples/ciesin.html b/examples/ciesin.html index 05a6824119..51bcb5f95b 100644 --- a/examples/ciesin.html +++ b/examples/ciesin.html @@ -2,8 +2,8 @@ @@ -27,7 +27,8 @@ map.addLayers([ol_wms, jpl_wms, cie_wms]); map.addControl(new OpenLayers.Control.LayerSwitcher()); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); + // map.setCenter(new OpenLayers.LonLat(0, 0), 0); + map.zoomToFullExtent(); } // --> diff --git a/examples/click.html b/examples/click.html index 4ae607f93e..2492a4fef9 100644 --- a/examples/click.html +++ b/examples/click.html @@ -2,8 +2,8 @@ @@ -24,7 +24,8 @@ map.addLayers([ol_wms, jpl_wms]); map.addControl(new OpenLayers.Control.LayerSwitcher()); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); + // map.setCenter(new OpenLayers.LonLat(0, 0), 0); + map.zoomToFullExtent(); map.events.register("click", map, function(e) { var lonlat = map.getLonLatFromViewPortPx(e.xy); alert("You clicked near " + lonlat.lat + " N, " + diff --git a/examples/controls.html b/examples/controls.html index 78f7fc9c38..af0b0e6e61 100644 --- a/examples/controls.html +++ b/examples/controls.html @@ -2,8 +2,8 @@ @@ -34,7 +34,8 @@ map.addControl(new OpenLayers.Control.PanZoomBar()); map.addControl(new OpenLayers.Control.MouseToolbar()); map.addControl(new OpenLayers.Control.LayerSwitcher()); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); + // map.setCenter(new OpenLayers.LonLat(0, 0), 0); + map.zoomToFullExtent(); } // --> diff --git a/examples/example.html b/examples/example.html index c94c6a9e7e..7898d521d1 100644 --- a/examples/example.html +++ b/examples/example.html @@ -2,8 +2,8 @@ @@ -31,7 +31,8 @@ map.addLayers([ol_wms, jpl_wms, dm_wms]); map.addControl(new OpenLayers.Control.LayerSwitcher()); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); + // map.setCenter(new OpenLayers.LonLat(0, 0), 0); + map.zoomToFullExtent(); } // --> diff --git a/examples/google.html b/examples/google.html index 83cbf5fd9f..6e7bc237f7 100644 --- a/examples/google.html +++ b/examples/google.html @@ -3,8 +3,8 @@ @@ -25,14 +25,15 @@ size = new OpenLayers.Size(50,50); calculateOffset = function(size) { - return new OpenLayers.Pixel(-(size.w/2), -size.h); - }; - icon = new OpenLayers.Icon('http://boston.openguides.org/markers/AQUA.png',size,null, calculateOffset); - markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(-180,90), - icon)); + return new OpenLayers.Pixel(-(size.w/2), -size.h); }; + icon = new OpenLayers.Icon( + 'http://boston.openguides.org/markers/AQUA.png', + size, null, calculateOffset); + markers.addMarker( + new OpenLayers.Marker(new OpenLayers.LonLat(-180,90), icon)); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); map.addControl(new OpenLayers.Control.LayerSwitcher()); + map.zoomToFullExtent(); } function resize() { diff --git a/examples/markers.html b/examples/markers.html index 6bde6bd02f..d3fc236eb6 100644 --- a/examples/markers.html +++ b/examples/markers.html @@ -3,8 +3,8 @@ @@ -31,8 +31,8 @@ marker = new OpenLayers.Marker(new OpenLayers.LonLat(90,10),icon); marker.events.register('mousedown', marker, function(evt) { alert(this.icon.url); Event.stop(evt); }); markers.addMarker(marker); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); map.addControl(new OpenLayers.Control.LayerSwitcher()); + map.zoomToFullExtent(); } // --> diff --git a/examples/markersTextLayer.html b/examples/markersTextLayer.html index 893e286330..c6a8eb5e13 100644 --- a/examples/markersTextLayer.html +++ b/examples/markersTextLayer.html @@ -3,8 +3,8 @@ @@ -23,8 +23,8 @@ var newl = new OpenLayers.Layer.Text( "text", "./textfile.txt" ); map.addLayer(newl); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); map.addControl(new OpenLayers.Control.LayerSwitcher()); + map.zoomToFullExtent(); } // --> diff --git a/examples/markerss.html b/examples/markerss.html index 3bb4a18edb..dc4db92b64 100644 --- a/examples/markerss.html +++ b/examples/markerss.html @@ -3,8 +3,8 @@ @@ -34,8 +34,8 @@ markers = new OpenLayers.Layer.Markers( "Markers" ); map.addLayer(markers); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); map.addControl(new OpenLayers.Control.LayerSwitcher()); + map.zoomToFullExtent(); } function changer() { diff --git a/examples/mvs.html b/examples/mvs.html index 1bdfa0424d..bd2612b6a5 100644 --- a/examples/mvs.html +++ b/examples/mvs.html @@ -11,7 +11,7 @@ --> - + diff --git a/examples/yahoo.html b/examples/yahoo.html index 8f79ff8b15..98cdf4fbf6 100644 --- a/examples/yahoo.html +++ b/examples/yahoo.html @@ -3,8 +3,8 @@ diff --git a/lib/OpenLayers.js b/lib/OpenLayers.js index cd83e5b2bc..7e15db8125 100644 --- a/lib/OpenLayers.js +++ b/lib/OpenLayers.js @@ -6,7 +6,11 @@ /// OpenLayers = new Object(); -OpenLayers._scriptName = "lib/OpenLayers.js"; + +OpenLayers._scriptName = ( + typeof(_OPENLAYERS_SFL_) == "undefined" ? "lib/OpenLayers.js" + : "OpenLayers.js" ); + OpenLayers._getScriptLocation = function () { var scriptLocation = ""; var SCRIPT_NAME = OpenLayers._scriptName; diff --git a/lib/OpenLayers/Ajax.js b/lib/OpenLayers/Ajax.js index e37f328657..efd93c6bb6 100644 --- a/lib/OpenLayers/Ajax.js +++ b/lib/OpenLayers/Ajax.js @@ -2,7 +2,7 @@ * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full * text of the license. */ -OpenLayers.ProxyHost = "/viewer/Crossbrowser/blindproxy.py?url="; +OpenLayers.ProxyHost = "/proxy/?url="; //OpenLayers.ProxyHost = "examples/proxy.cgi?url="; /** @@ -51,11 +51,6 @@ OpenLayers.loadURL = function(uri, params, caller, if (OpenLayers.ProxyHost && uri.startsWith("http")) { uri = OpenLayers.ProxyHost + escape(uri); - - if (!params) { - params=""; - } - params += "&cachehack=" + new Date().getTime(); } var success = (onComplete) ? onComplete.bind(caller) @@ -110,4 +105,4 @@ OpenLayers.parseXMLString = function(text) { ); return ajaxResponse; -}; \ No newline at end of file +}; diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js index 79cd9af58a..0327639788 100644 --- a/lib/OpenLayers/Control/LayerSwitcher.js +++ b/lib/OpenLayers/Control/LayerSwitcher.js @@ -143,6 +143,8 @@ OpenLayers.Control.LayerSwitcher.prototype = backdropLabelOuter.style.marginTop = "4px"; backdropLabelOuter.style.marginBottom = "4px"; + this._setEventHandlers(backdropLabelOuter); + // Inner Label - for Rico Corners // var backdropLabel = document.createElement('p'); @@ -191,9 +193,10 @@ OpenLayers.Control.LayerSwitcher.prototype = _setEventHandlers : function(element, labelDiv) { // We only want to respond to a mousedown event. - element.onclick = this.ignoreEvent.bindAsEventListener(this); - element.ondblclick = this.ignoreEvent.bindAsEventListener(this); - element.onmousedown = this.singleClick.bindAsEventListener(this); + element.onclick = this.singleClick.bindAsEventListener(this); + element.ondblclick = this.singleClick.bindAsEventListener(this); + element.onmouseup = this.ignoreEvent.bindAsEventListener(this); + element.onmousedown = this.ignoreEvent.bindAsEventListener(this); // If we are operating on a corner span we need to store a // reference to the actual tab. (See comment about OL #57 fix above.) diff --git a/lib/OpenLayers/Control/MouseDefaults.js b/lib/OpenLayers/Control/MouseDefaults.js index 9ce026342c..3ae7edd5d4 100644 --- a/lib/OpenLayers/Control/MouseDefaults.js +++ b/lib/OpenLayers/Control/MouseDefaults.js @@ -22,6 +22,7 @@ OpenLayers.Control.MouseDefaults.prototype = }, defaultClick: function (evt) { + if (!Event.isLeftClick(evt)) return; var notAfterDrag = !this.performedDrag; this.performedDrag = false; return notAfterDrag; @@ -39,6 +40,7 @@ OpenLayers.Control.MouseDefaults.prototype = * @param {Event} evt */ defaultMouseDown: function (evt) { + if (!Event.isLeftClick(evt)) return; this.mouseDragStart = evt.xy.copyOf(); this.performedDrag = false; if (evt.shiftKey) { @@ -94,6 +96,7 @@ OpenLayers.Control.MouseDefaults.prototype = * @param {Event} evt */ defaultMouseUp: function (evt) { + if (!Event.isLeftClick(evt)) return; if (this.zoomBox) { var start = this.map.getLonLatFromViewPortPx( this.mouseDragStart ); var end = this.map.getLonLatFromViewPortPx( evt.xy ); diff --git a/lib/OpenLayers/Control/MouseToolbar.js b/lib/OpenLayers/Control/MouseToolbar.js index e0afdd527b..28b78d606b 100644 --- a/lib/OpenLayers/Control/MouseToolbar.js +++ b/lib/OpenLayers/Control/MouseToolbar.js @@ -63,7 +63,7 @@ OpenLayers.Control.MouseToolbar.prototype = btn.events = new OpenLayers.Events(this, btn); btn.events.register("mousedown", this, this.buttonClick); - btn.events.register("mouseup", this, this.stopAction); + btn.events.register("mouseup", this, Event.stop); btn.action = id; btn.title = title; btn.alt = title; @@ -74,11 +74,8 @@ OpenLayers.Control.MouseToolbar.prototype = return btn; }, - stopAction: function(evt) { - Event.stop(evt); - }, - buttonClick: function(evt) { + if (!Event.isLeftClick(evt)) return; this.switchModeTo(evt.div.action); Event.stop(evt); }, @@ -96,6 +93,7 @@ OpenLayers.Control.MouseToolbar.prototype = * @param {Event} evt */ defaultMouseDown: function (evt) { + if (!Event.isLeftClick(evt)) return; this.mouseDragStart = evt.xy.copyOf(); if (evt.shiftKey && this.mode !="zoombox") { this.switchModeTo("zoombox"); @@ -226,6 +224,7 @@ OpenLayers.Control.MouseToolbar.prototype = * @param {Event} evt */ defaultMouseUp: function (evt) { + if (!Event.isLeftClick(evt)) return; switch (this.mode) { case "zoombox": var start = this.map.getLonLatFromViewPortPx( this.mouseDragStart ); diff --git a/lib/OpenLayers/Control/PanZoom.js b/lib/OpenLayers/Control/PanZoom.js index 5b51b118d5..32eed2feb7 100644 --- a/lib/OpenLayers/Control/PanZoom.js +++ b/lib/OpenLayers/Control/PanZoom.js @@ -111,6 +111,7 @@ OpenLayers.Control.PanZoom.prototype = * @param {event} evt */ buttonDown: function (evt) { + if (!Event.isLeftClick(evt)) return; var slide = this.map.getResolution() * this.slideFactor; var center = this.map.getCenter(); diff --git a/lib/OpenLayers/Control/PanZoomBar.js b/lib/OpenLayers/Control/PanZoomBar.js index c354e5f79f..168c928c88 100644 --- a/lib/OpenLayers/Control/PanZoomBar.js +++ b/lib/OpenLayers/Control/PanZoomBar.js @@ -127,6 +127,7 @@ OpenLayers.Control.PanZoomBar.prototype = * and sets the zoom level appropriately. */ divClick: function (evt) { + if (!Event.isLeftClick(evt)) return; var y = evt.xy.y; var top = Position.page(evt.object)[1]; var levels = Math.floor((y - top)/this.zoomStopHeight); @@ -139,6 +140,7 @@ OpenLayers.Control.PanZoomBar.prototype = * event listener for clicks on the slider */ zoomBarDown:function(evt) { + if (!Event.isLeftClick(evt)) return; this.map.events.register("mousemove", this, this.passEventToSlider); this.map.events.register("mouseup", this, this.passEventToSlider); this.mouseDragStart = evt.xy.copyOf(); @@ -173,6 +175,7 @@ OpenLayers.Control.PanZoomBar.prototype = * and switch to it. */ zoomBarUp:function(evt) { + if (!Event.isLeftClick(evt)) return; if (this.zoomStart) { this.div.style.cursor="default"; this.map.events.remove("mousemove"); diff --git a/lib/OpenLayers/Feature/WFS.js b/lib/OpenLayers/Feature/WFS.js index a02dfe60e1..b2eb0f5224 100644 --- a/lib/OpenLayers/Feature/WFS.js +++ b/lib/OpenLayers/Feature/WFS.js @@ -43,8 +43,15 @@ OpenLayers.Feature.WFS.prototype = */ processXMLNode: function(xmlNode) { //this should be overridden by subclasses - // must return an Object with 'id' and 'lonlat' values set + var point = xmlNode.getElementsByTagName("Point"); + var text = point[0].textContent; + var floats = text.split(","); + + return {lonlat: new OpenLayers.LonLat(parseFloat(floats[0]), + parseFloat(floats[1])), + id: null}; + }, /** @final @type String */ diff --git a/lib/OpenLayers/Layer/WFS.js b/lib/OpenLayers/Layer/WFS.js index 4b060c10b3..6885b30248 100644 --- a/lib/OpenLayers/Layer/WFS.js +++ b/lib/OpenLayers/Layer/WFS.js @@ -12,7 +12,7 @@ OpenLayers.Layer.WFS.prototype = Object.extend(new OpenLayers.Layer.Markers(), { /** @type Object */ - featureClass: null, + featureClass: OpenLayers.Feature.WFS, /** @final @type hash */ DEFAULT_PARAMS: { service: "WFS", @@ -30,7 +30,7 @@ OpenLayers.Layer.WFS.prototype = * @param {Object} featureClass */ initialize: function(name, url, params, featureClass) { - this.featureClass = featureClass; + if (featureClass != null) this.featureClass = featureClass; var newArguments = new Array(); if (arguments.length > 0) { diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index bcb3087be6..259175714c 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -545,12 +545,11 @@ OpenLayers.Map.prototype = { */ zoomToFullExtent: function() { var fullExtent = this.getFullExtent(); - var oldZoom = this.zoom; this.setCenter( new OpenLayers.LonLat((fullExtent.left+fullExtent.right)/2, (fullExtent.bottom+fullExtent.top)/2), - 0 - ); + this.getZoomForExtent(fullExtent) + ); }, /** diff --git a/lib/OpenLayers/Popup/AnchoredBubble.js b/lib/OpenLayers/Popup/AnchoredBubble.js index 1e022bba6f..352086dbd6 100644 --- a/lib/OpenLayers/Popup/AnchoredBubble.js +++ b/lib/OpenLayers/Popup/AnchoredBubble.js @@ -51,7 +51,7 @@ OpenLayers.Popup.AnchoredBubble.prototype = var id = this.div.id + "-contentDiv"; this.contentDiv = OpenLayers.Util.createDiv(id, null, contentSize, null, "relative", null, - "none"); + "hidden"); this.div.appendChild(this.contentDiv); this.setContentHTML(); diff --git a/lib/OpenLayers/Tile/Image.js b/lib/OpenLayers/Tile/Image.js index fa201ed675..6a386f8c25 100644 --- a/lib/OpenLayers/Tile/Image.js +++ b/lib/OpenLayers/Tile/Image.js @@ -36,7 +36,9 @@ OpenLayers.Tile.Image.prototype = /** */ draw:function(transparent) { - if (transparent) { + if (false) { // don't actually use the alpha PNG hack right now + // it has a fiercely bad effect on IE6's performance + // if (transparent) { this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null, this.position, this.size, diff --git a/lib/OpenLayers/Tile/WFS.js b/lib/OpenLayers/Tile/WFS.js index aede4a6dd0..486d1384cd 100644 --- a/lib/OpenLayers/Tile/WFS.js +++ b/lib/OpenLayers/Tile/WFS.js @@ -79,7 +79,7 @@ OpenLayers.Tile.WFS.prototype = doc = OpenLayers.parseXMLString(request.responseText); } - var resultFeatures = OpenLayers.Util.getNodes(doc, "gml:featureMember"); + var resultFeatures = doc.getElementsByTagName("featureMember"); //clear old featureList this.features = new Array(); diff --git a/tests/test_Control_PanZoom.html b/tests/test_Control_PanZoom.html index 16ff093871..3b7af22242 100644 --- a/tests/test_Control_PanZoom.html +++ b/tests/test_Control_PanZoom.html @@ -28,12 +28,12 @@ } function test_03_Control_PanZoom_control_events (t) { t.plan( 7 ); - var evt = new Object(); + var evt = {which: 1}; // control expects left-click map = new OpenLayers.Map('map'); control = new OpenLayers.Control.PanZoom(); map.addControl(control, new OpenLayers.Pixel(20,20)); - map.setCenter(new OpenLayers.LonLat(0,0), 0); + map.setCenter(new OpenLayers.LonLat(0,0), 4); var res = map.getResolution(); control.buttons[0].onmousedown(evt); t.eq( map.getCenter().lat, res*50, "Pan up works correctly" ); @@ -45,12 +45,12 @@ t.eq( map.getCenter().lat, 0, "Pan down works correctly" ); control.buttons[4].onmousedown(evt); control.buttons[4].onmousedown(evt); - t.eq( map.getZoom(), 2, "zoomin workds correctly" ); + t.eq( map.getZoom(), 6, "zoomin works correctly" ); control.buttons[6].onmousedown(evt); - t.eq( map.getZoom(), 1, "zoomout workds correctly" ); + t.eq( map.getZoom(), 5, "zoomout works correctly" ); control.buttons[4].onmousedown(evt); control.buttons[5].onmousedown(evt); - t.eq( map.getZoom(), 0, "zoomworld workds correctly" ); + t.eq( map.getZoom(), 2, "zoomworld works correctly" ); } // --> diff --git a/tests/test_Map.html b/tests/test_Map.html index 7d285ddb00..c838587472 100644 --- a/tests/test_Map.html +++ b/tests/test_Map.html @@ -71,7 +71,7 @@ map.zoomTo(5); t.eq( map.getZoom(), 5, "map.zoom is correct after calling zoomTo" ); map.zoomToFullExtent(); - t.eq( map.getZoom(), 0, "map.zoom is correct after calling zoomToFullExtent" ); + t.eq( map.getZoom(), 2, "map.zoom is correct after calling zoomToFullExtent" ); var lonlat = map.getCenter(); var zero = new OpenLayers.LonLat(0, 0); t.ok( lonlat.equals(zero), "map center is correct after calling zoomToFullExtent" );