Better calc of turn arrow placmenet along short segments

This commit is contained in:
Bryan Housel
2018-02-07 17:00:22 -05:00
parent ea4ac80fee
commit cf1226ca33
+4 -2
View File
@@ -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 + ')';