diff --git a/examples/vector-features.html b/examples/vector-features.html index bd64da23ac..743cd40d09 100644 --- a/examples/vector-features.html +++ b/examples/vector-features.html @@ -62,6 +62,8 @@ style_mark.graphicXOffset = -(style_mark.graphicWidth/2); // this is the default value style_mark.graphicYOffset = -style_mark.graphicHeight; style_mark.externalGraphic = "../img/marker.png"; + // graphicTitle only works in Firefox and Internet Explorer + style_mark.graphicTitle = "this is a test tooltip"; var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {style: layer_style}); diff --git a/lib/OpenLayers/Feature/Vector.js b/lib/OpenLayers/Feature/Vector.js index bd704d4cf9..0c4ac678a7 100644 --- a/lib/OpenLayers/Feature/Vector.js +++ b/lib/OpenLayers/Feature/Vector.js @@ -332,6 +332,7 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, { * graphicZIndex - {Number} The integer z-index value to use in rendering. * graphicName - {String} Named graphic to use when rendering points. Supported values include "circle" (default), * "square", "star", "x", "cross", "triangle". + * graphicTitle - {String} Tooltip for an external graphic. Only supported in Firefox and Internet Explorer. * backgroundGraphic - {String} Url to a graphic to be used as the background under an externalGraphic. * backgroundGraphicZIndex - {Number} The integer z-index value to use in rendering the background graphic. * backgroundXOffset - {Number} The x offset (in pixels) for the background graphic. diff --git a/lib/OpenLayers/Renderer/Canvas.js b/lib/OpenLayers/Renderer/Canvas.js index 727261732c..8f74bca196 100644 --- a/lib/OpenLayers/Renderer/Canvas.js +++ b/lib/OpenLayers/Renderer/Canvas.js @@ -190,6 +190,10 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { drawExternalGraphic: function(pt, style) { var img = new Image(); img.src = style.externalGraphic; + + if(style.graphicTitle) { + img.title=style.graphicTitle; + } var width = style.graphicWidth || style.graphicHeight; var height = style.graphicHeight || style.graphicWidth; diff --git a/lib/OpenLayers/Renderer/SVG.js b/lib/OpenLayers/Renderer/SVG.js index 58d0b42809..ee630ce7df 100644 --- a/lib/OpenLayers/Renderer/SVG.js +++ b/lib/OpenLayers/Renderer/SVG.js @@ -250,6 +250,9 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, { if (style.externalGraphic) { pos = this.getPosition(node); + if (style.graphicTitle) { + node.setAttributeNS(null, "title", style.graphicTitle); + } if (style.graphicWidth && style.graphicHeight) { node.setAttributeNS(null, "preserveAspectRatio", "none"); } @@ -330,7 +333,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, { if (style.pointerEvents) { node.setAttributeNS(null, "pointer-events", style.pointerEvents); } - + if (style.cursor != null) { node.setAttributeNS(null, "cursor", style.cursor); } diff --git a/lib/OpenLayers/Renderer/VML.js b/lib/OpenLayers/Renderer/VML.js index 5cce601a48..b4d01bdae3 100644 --- a/lib/OpenLayers/Renderer/VML.js +++ b/lib/OpenLayers/Renderer/VML.js @@ -199,6 +199,9 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, { if (node._geometryClass == "OpenLayers.Geometry.Point") { if (style.externalGraphic) { this.drawGraphic(node, geometry, style); + if (style.graphicTitle) { + node.title=style.graphicTitle; + } // modify style/options for fill and stroke styling below style.fillColor = "none"; options.isStroked = false;