From 2c163ae2c27d9e678bee19254b1616f5de103ebc Mon Sep 17 00:00:00 2001 From: "hhclaw.eb@gmail.com" Date: Fri, 6 Sep 2013 20:00:08 +0800 Subject: [PATCH 1/3] Amend width calculation for wide characters --- js/id/svg/labels.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/js/id/svg/labels.js b/js/id/svg/labels.js index 7256e223a..f7d6a5283 100644 --- a/js/id/svg/labels.js +++ b/js/id/svg/labels.js @@ -70,6 +70,7 @@ iD.svg.Labels = function(projection, context) { function textWidth(text, size, elem) { var c = textWidthCache[size]; + var str; if (!c) c = textWidthCache[size] = {}; if (c[text]) { @@ -80,7 +81,12 @@ iD.svg.Labels = function(projection, context) { return c[text]; } else { - return size / 3 * 2 * text.length; + str = encodeURIComponent(text).match(/%[CDEFcdef]/g); + if (str == null) { + return size / 3 * 2 * text.length; + } else { + return size / 3 * ( 2 * text.length + str.length); + } } } From ab6c6411bd8b67e347b4190ad6dc22bbdde1045c Mon Sep 17 00:00:00 2001 From: "hhclaw.eb@gmail.com" Date: Fri, 6 Sep 2013 20:15:01 +0800 Subject: [PATCH 2/3] Unicode fix for label --- js/id/svg/labels.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js/id/svg/labels.js b/js/id/svg/labels.js index f7d6a5283..72b002e54 100644 --- a/js/id/svg/labels.js +++ b/js/id/svg/labels.js @@ -70,7 +70,6 @@ iD.svg.Labels = function(projection, context) { function textWidth(text, size, elem) { var c = textWidthCache[size]; - var str; if (!c) c = textWidthCache[size] = {}; if (c[text]) { @@ -81,7 +80,7 @@ iD.svg.Labels = function(projection, context) { return c[text]; } else { - str = encodeURIComponent(text).match(/%[CDEFcdef]/g); + var str = encodeURIComponent(text).match(/%[CDEFcdef]/g); if (str == null) { return size / 3 * 2 * text.length; } else { From 7ff9bf4a8f1802d57b14e20507af4808e7f597dc Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Tue, 17 Sep 2013 10:46:49 -0400 Subject: [PATCH 3/3] Cleanup style and null check --- js/id/svg/labels.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/id/svg/labels.js b/js/id/svg/labels.js index 72b002e54..ac558179c 100644 --- a/js/id/svg/labels.js +++ b/js/id/svg/labels.js @@ -81,10 +81,10 @@ iD.svg.Labels = function(projection, context) { } else { var str = encodeURIComponent(text).match(/%[CDEFcdef]/g); - if (str == null) { + if (str === null) { return size / 3 * 2 * text.length; } else { - return size / 3 * ( 2 * text.length + str.length); + return size / 3 * (2 * text.length + str.length); } } }