Skip to content

Commit 2289d58

Browse files
author
perliedman
committed
Allow fixed precision rounding of distances; default to fixed precision for route summary.
Close #166.
1 parent cdc3d97 commit 2289d58

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/L.Routing.Formatter.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,39 @@
3030

3131
formatDistance: function(d /* Number (meters) */, sensitivity) {
3232
var un = this.options.unitNames,
33+
simpleRounding = sensitivity <= 0,
34+
round = simpleRounding ? function(v) { return v; } : L.bind(this._round, this),
3335
v,
3436
yards,
35-
data;
37+
data,
38+
pow10;
3639

3740
if (this.options.units === 'imperial') {
3841
yards = d / 0.9144;
3942
if (yards >= 1000) {
4043
data = {
41-
value: this._round(d / 1609.344, sensitivity),
44+
value: round(d / 1609.344, sensitivity),
4245
unit: un.miles
4346
};
4447
} else {
4548
data = {
46-
value: this._round(yards, sensitivity),
49+
value: round(yards, sensitivity),
4750
unit: un.yards
4851
};
4952
}
5053
} else {
51-
v = this._round(d, sensitivity);
54+
v = round(d, sensitivity);
5255
data = {
5356
value: v >= 1000 ? (v / 1000) : v,
5457
unit: v >= 1000 ? un.kilometers : un.meters
5558
};
5659
}
5760

61+
if (simpleRounding) {
62+
pow10 = Math.pow(10, -sensitivity);
63+
data.value = Math.round(data.value * pow10) / pow10;
64+
}
65+
5866
return L.Util.template(this.options.distanceTemplate, data);
5967
},
6068

src/L.Routing.Itinerary.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
alternativeClassName: '',
2525
minimizedClassName: '',
2626
itineraryClassName: '',
27-
totalDistanceRoundingSensitivity: 10,
27+
totalDistanceRoundingSensitivity: -1,
2828
show: true,
2929
collapsible: undefined,
3030
collapseBtn: function(itinerary) {

0 commit comments

Comments
 (0)