From cf1226ca33d27100ec42b1611713d874bd4343f1 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 17:00:22 -0500 Subject: [PATCH] Better calc of turn arrow placmenet along short segments --- modules/svg/turns.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 77c413563..62c43aa03 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -1,4 +1,4 @@ -import { geoAngle } from '../geo/index'; +import { geoAngle, geoVecLength } from '../geo'; export function svgTurns(projection) { @@ -67,7 +67,9 @@ export function svgTurns(projection) { var v = graph.entity(turn.to.vertex); var a = geoAngle(v, t, projection); var p = projection(v.loc); - var r = turn.u ? 0 : 60; + var q = projection(t.loc); + var mid = geoVecLength(p, q) / 2; + var r = turn.u ? 0 : Math.min(mid, 60); return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')';