From 140618c5a2944384acb693f2f460f713b2d0d9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Dub=C3=A9?= Date: Wed, 12 Mar 2014 10:19:41 -0400 Subject: [PATCH] Add rotation, offsetX and offsetY to vector-labels example --- examples/vector-labels.html | 41 ++++++++++++++++++++++++++++++++++++- examples/vector-labels.js | 17 ++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/examples/vector-labels.html b/examples/vector-labels.html index 61adea5d94..8312c87256 100644 --- a/examples/vector-labels.html +++ b/examples/vector-labels.html @@ -115,6 +115,13 @@
+ + +

+ + +
+ + +

@@ -191,6 +204,13 @@
+ + +

+ + +
+ + +

@@ -267,6 +293,13 @@
+ + +

+ + +
+ + +

@@ -304,7 +343,7 @@

Example of GeoJSON features with labels.

See the vector-labels.js source to see how this is done.

-

Note: The 'Text/Wrap' option is currently not working properly. It's supposed to add '\n' to allow multiline labels, but spaces are currently shown instead.

+

Note: The 'Text/Wrap' option is currently not working properly. This is because ol3 uses Canvas's strokeText and fillText functions that do not support text wrapping.

geojson, vector, openstreetmap, label
diff --git a/examples/vector-labels.js b/examples/vector-labels.js index fb3fcb51f0..44cb2cfaa2 100644 --- a/examples/vector-labels.js +++ b/examples/vector-labels.js @@ -17,9 +17,12 @@ var myDom = { 'text': document.getElementById('points-text'), 'align': document.getElementById('points-align'), 'baseline': document.getElementById('points-baseline'), + 'rotation': document.getElementById('points-rotation'), 'font': document.getElementById('points-font'), 'weight': document.getElementById('points-weight'), 'size': document.getElementById('points-size'), + 'offset-x': document.getElementById('points-offset-x'), + 'offset-y': document.getElementById('points-offset-y'), 'color': document.getElementById('points-color'), 'outline': document.getElementById('points-outline'), 'outline-width': document.getElementById('points-outline-width'), @@ -29,9 +32,12 @@ var myDom = { 'text': document.getElementById('lines-text'), 'align': document.getElementById('lines-align'), 'baseline': document.getElementById('lines-baseline'), + 'rotation': document.getElementById('lines-rotation'), 'font': document.getElementById('lines-font'), 'weight': document.getElementById('lines-weight'), 'size': document.getElementById('lines-size'), + 'offset-x': document.getElementById('lines-offset-x'), + 'offset-y': document.getElementById('lines-offset-y'), 'color': document.getElementById('lines-color'), 'outline': document.getElementById('lines-outline'), 'outline-width': document.getElementById('lines-outline-width'), @@ -41,9 +47,12 @@ var myDom = { 'text': document.getElementById('polygons-text'), 'align': document.getElementById('polygons-align'), 'baseline': document.getElementById('polygons-baseline'), + 'rotation': document.getElementById('polygons-rotation'), 'font': document.getElementById('polygons-font'), 'weight': document.getElementById('polygons-weight'), 'size': document.getElementById('polygons-size'), + 'offset-x': document.getElementById('polygons-offset-x'), + 'offset-y': document.getElementById('polygons-offset-y'), 'color': document.getElementById('polygons-color'), 'outline': document.getElementById('polygons-outline'), 'outline-width': document.getElementById('polygons-outline-width'), @@ -74,7 +83,10 @@ var createTextStyle = function(feature, resolution, dom) { var align = dom['align'].value; var baseline = dom['baseline'].value; var size = dom['size'].value; + var offsetX = parseInt(dom['offset-x'].value, 10); + var offsetY = parseInt(dom['offset-y'].value, 10); var weight = dom['weight'].value; + var rotation = parseFloat(dom['rotation'].value); var font = weight + ' ' + size + ' ' + dom['font'].value; var fillColor = dom['color'].value; var outlineColor = dom['outline'].value; @@ -86,7 +98,10 @@ var createTextStyle = function(feature, resolution, dom) { font: font, text: getText(feature, resolution, dom), fill: new ol.style.Fill({color: fillColor}), - stroke: new ol.style.Stroke({color: outlineColor, width: outlineWidth}) + stroke: new ol.style.Stroke({color: outlineColor, width: outlineWidth}), + offsetX: offsetX, + offsetY: offsetY, + rotation: rotation }); };