-
Notifications
You must be signed in to change notification settings - Fork 0
/
decimate.test.js
109 lines (96 loc) · 6.92 KB
/
decimate.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
var Decimate = require('./decimate');
describe("Decimate Tests", function () {
test("Radial distance works for a line", function () {
var line = [
[0,0],
[.3,.3],
[.5,.5],
[1,1],
[1.2,1],
[2,1],
[2,2]
];
var s = new Decimate(null,null);
var simplified = s.decimateRadialDistance(line,1);
expect(simplified.length).toEqual(3);
expect(simplified[0]).toEqual(line[0]);
expect(simplified[1]).toEqual(line[3]);
expect(simplified[2]).toEqual(line[6]);
});
test("Radial distance works for a ring", function () {
var line = [
[0, 0],
[.3, .3],
[.5, .5],
[1, 1],
[1.2, 1],
[2, 1],
[4, 5],
[2, 5],
[1.9, 4.5],
[1, 3],
[0, 0]
];
var s = new Decimate(null, null);
var simplified = s.decimateRadialDistance(line, 1);
expect(simplified.length).toEqual(6);
expect(simplified[0]).toEqual(line[0]);
expect(simplified[1]).toEqual(line[3]);
expect(simplified[2]).toEqual(line[6]);
expect(simplified[3]).toEqual(line[7]);
expect(simplified[4]).toEqual(line[9]);
expect(simplified[5]).toEqual(line[10]);
});
test("Douglas-Peuker works for a simple line", function() {
var line = [
[0,0],
[.3,.3],
[.5,.5],
[1,1],
[1.2,1],
[2,1],
[2,2]
];
var s = new Decimate(null,null);
var simplified = s.decimateRadialDistance(line,1);
expect(simplified.length).toEqual(3);
expect(simplified[0]).toEqual(line[0]);
expect(simplified[1]).toEqual(line[3]);
expect(simplified[2]).toEqual(line[6]);
});
test("Douglas-Peuker works for a ring", function() {
var line = [
[0, 0],
[.3, .3],
[.5, .5],
[1, 1],
[1.2, 1],
[2, 1],
[4, 5],
[2, 5],
[1.9, 4.5],
[1, 3],
[0, 0]
];
var s = new Decimate(null, null);
var simplified = s.decimateRadialDistance(line, 1);
expect(simplified.length).toEqual(6);
expect(simplified[0]).toEqual(line[0]);
expect(simplified[1]).toEqual(line[3]);
expect(simplified[2]).toEqual(line[6]);
expect(simplified[3]).toEqual(line[7]);
expect(simplified[4]).toEqual(line[9]);
expect(simplified[5]).toEqual(line[10]);
});
test("geojson feature simplification", function () {
let geojson = {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[-100.84776865899994, 34.74831690100007], [-100.74090963299994, 34.748038905000044], [-100.71798062799996, 34.748105907000024], [-100.70050736099995, 34.74808023800006], [-100.70028262399995, 34.74807990800008], [-100.66757361599997, 34.74805990900006], [-100.65527161299997, 34.74806491000004], [-100.63330360699996, 34.748031911000055], [-100.62480596299997, 34.748010073000046], [-100.60956764499997, 34.74797091200003], [-100.57300111199999, 34.74787694100007], [-100.57260159199996, 34.747875915000066], [-100.55547958899996, 34.747778915000026], [-100.55535726899996, 34.74777850100003], [-100.54071158499994, 34.74772891600003], [-100.52309157999997, 34.74764491700006], [-100.505779239, 34.74761179500007], [-100.47770113399997, 34.747558076000075], [-100.47537354899998, 34.747553623000044], [-100.47186956799999, 34.74754692000005], [-100.46981056799996, 34.74762792000007], [-100.46170162499999, 34.74761332800006], [-100.45230361799997, 34.74759641800006], [-100.44443899799995, 34.74758226700004], [-100.41590355399995, 34.74753092200007], [-100.41589580199997, 34.72573183000003], [-100.41589555799999, 34.72505491800007], [-100.41587721899998, 34.67347958300007], [-100.415858545, 34.620968901000026], [-100.41592054299997, 34.590655895000054], [-100.41581146499999, 34.56292572800004], [-100.41580253999996, 34.560656890000075], [-100.41580853699998, 34.55842342500006], [-100.41582296599995, 34.55305013700007], [-100.415887538, 34.529003884000076], [-100.41684753099997, 34.424575866000055], [-100.41779152399994, 34.31352984700004], [-100.44296143699995, 34.31354437700003], [-100.46975653599998, 34.31355984500004], [-100.49481754199996, 34.313649844000054], [-100.49532726199999, 34.313632220000045], [-100.49609782099998, 34.31360557800008], [-100.49665869799998, 34.313586186000066], [-100.49820154299994, 34.313532844000065], [-100.50040654299994, 34.31407984400005], [-100.50338154399998, 34.314084843000046], [-100.51337163799997, 34.31410129400007], [-100.51734854799997, 34.314107843000045], [-100.52737037799994, 34.31411620200004], [-100.62285306399997, 34.31419584200006], [-100.62404657299999, 34.31419683800004], [-100.62541257299995, 34.313404838000054], [-100.62650514599994, 34.313400837000074], [-100.62666821199997, 34.31340024000008], [-100.62732457399994, 34.313397837000025], [-100.65976070199997, 34.313307198000075], [-100.67062658399999, 34.31327683500007], [-100.67284558499995, 34.31347983500007], [-100.67967355499997, 34.313422340000045], [-100.68270258699994, 34.31339683500005], [-100.69367358999995, 34.31330583400006], [-100.71974217699994, 34.31332249800005], [-100.72339359699998, 34.313324832000035], [-100.72864959899994, 34.31331183200007], [-100.72902881599998, 34.31331138100006], [-100.76985960799999, 34.31326283000004], [-100.80886974499998, 34.313152623000065], [-100.83159618199994, 34.31308841900005], [-100.83807134099999, 34.31307012600007], [-100.84001830999995, 34.31306462600003], [-100.86680035999996, 34.312988964000056], [-100.90527790699997, 34.31288026200008], [-100.90890025799996, 34.31287002900007], [-100.94614065099995, 34.31276482100003], [-100.94612016499997, 34.31801595100006], [-100.94585916999995, 34.384916704000034], [-100.94584618999994, 34.38824397500008], [-100.94553895999996, 34.466996245000075], [-100.94547066299998, 34.48450285100006], [-100.94582766299999, 34.48744885100007], [-100.94566327699994, 34.490394956000046], [-100.94558466399997, 34.49180385200003], [-100.94536847199998, 34.56799359000007], [-100.94535012699998, 34.574458562000075], [-100.94526570599999, 34.60421026100005], [-100.94523353499994, 34.615548029000024], [-100.94519667299994, 34.62853887500006], [-100.94518555299999, 34.63388704000005], [-100.94515501799998, 34.648572354000066], [-100.94515413999994, 34.648994566000056], [-100.94504611299999, 34.700948433000065], [-100.945039883, 34.70394488300008], [-100.94496003599994, 34.742345804000024], [-100.94494768299995, 34.748286896000025], [-100.86715431899995, 34.74831091500005], [-100.85257789299999, 34.748315416000025], [-100.84776865899994, 34.74831690100007]]]
}
}
let d = new Decimate(null, null);
d.decimate(geojson, 1);
})
});