mapshaper 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/mapshaper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function () {
2
2
 
3
- var VERSION = "0.6.2";
3
+ var VERSION = "0.6.3";
4
4
 
5
5
 
6
6
  var utils = /*#__PURE__*/Object.freeze({
@@ -81,6 +81,7 @@
81
81
  get findValueByPct () { return findValueByPct; },
82
82
  get findValueByRank () { return findValueByRank; },
83
83
  get findMedian () { return findMedian; },
84
+ get findQuantile () { return findQuantile; },
84
85
  get mean () { return mean; },
85
86
  get format () { return format; },
86
87
  get formatter () { return formatter; },
@@ -832,18 +833,24 @@
832
833
  return arr[k];
833
834
  }
834
835
 
835
- //
836
- //
837
836
  function findMedian(arr) {
838
- var n = arr.length,
839
- rank = Math.floor(n / 2) + 1,
840
- median = findValueByRank(arr, rank);
841
- if ((n & 1) == 0) {
842
- median = (median + findValueByRank(arr, rank - 1)) / 2;
843
- }
844
- return median;
837
+ return findQuantile(arr, 0.5);
845
838
  }
846
839
 
840
+ function findQuantile(arr, k) {
841
+ var n = arr.length,
842
+ i1 = Math.floor((n - 1) * k),
843
+ i2 = Math.ceil((n - 1) * k);
844
+ if (i1 < 0 || i2 >= n) return NaN;
845
+ var v1 = findValueByRank(arr, i1 + 1);
846
+ if (i1 == i2) return v1;
847
+ var v2 = findValueByRank(arr, i2 + 1);
848
+ // use linear interpolation
849
+ var w1 = i2 / (n - 1) - k;
850
+ var w2 = k - i1 / (n - 1);
851
+ var v = (v1 * w1 + v2 * w2) * (n - 1);
852
+ return v;
853
+ }
847
854
 
848
855
  function mean(arr) {
849
856
  var count = 0,
@@ -10343,6 +10350,7 @@
10343
10350
  sums: capture,
10344
10351
  average: captureNum,
10345
10352
  median: captureNum,
10353
+ quantile: captureNum,
10346
10354
  min: captureNum,
10347
10355
  max: captureNum,
10348
10356
  mode: capture,
@@ -10357,6 +10365,7 @@
10357
10365
  sum: wrap(utils.sum, 0),
10358
10366
  sums: wrap(sums),
10359
10367
  median: wrap(utils.findMedian),
10368
+ quantile: wrap2(utils.findQuantile),
10360
10369
  min: wrap(min),
10361
10370
  max: wrap(max),
10362
10371
  average: wrap(utils.mean),
@@ -10429,6 +10438,13 @@
10429
10438
  };
10430
10439
  }
10431
10440
 
10441
+ function wrap2(proc) {
10442
+ return function(arg1, arg2) {
10443
+ var c = colNo++;
10444
+ return rowNo > 0 ? proc(cols[c], arg2) : null;
10445
+ };
10446
+ }
10447
+
10432
10448
  function procAll() {
10433
10449
  for (var i=0; i<len; i++) {
10434
10450
  procRecord(i);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapshaper",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "A tool for editing vector datasets for mapping and GIS.",
5
5
  "keywords": [
6
6
  "shapefile",
@@ -36,7 +36,7 @@
36
36
  "/bin/**",
37
37
  "/www/**",
38
38
  "!/www/basemap.js",
39
- "!/www/nacis/",
39
+ "!/www/nacis/**",
40
40
  "/mapshaper.js",
41
41
  "!.DS_Store"
42
42
  ],
@@ -78,6 +78,7 @@
78
78
  get findValueByPct () { return findValueByPct; },
79
79
  get findValueByRank () { return findValueByRank; },
80
80
  get findMedian () { return findMedian; },
81
+ get findQuantile () { return findQuantile; },
81
82
  get mean () { return mean; },
82
83
  get format () { return format; },
83
84
  get formatter () { return formatter; },
@@ -5312,18 +5313,24 @@
5312
5313
  return arr[k];
5313
5314
  }
5314
5315
 
5315
- //
5316
- //
5317
5316
  function findMedian(arr) {
5318
- var n = arr.length,
5319
- rank = Math.floor(n / 2) + 1,
5320
- median = findValueByRank(arr, rank);
5321
- if ((n & 1) == 0) {
5322
- median = (median + findValueByRank(arr, rank - 1)) / 2;
5323
- }
5324
- return median;
5317
+ return findQuantile(arr, 0.5);
5325
5318
  }
5326
5319
 
5320
+ function findQuantile(arr, k) {
5321
+ var n = arr.length,
5322
+ i1 = Math.floor((n - 1) * k),
5323
+ i2 = Math.ceil((n - 1) * k);
5324
+ if (i1 < 0 || i2 >= n) return NaN;
5325
+ var v1 = findValueByRank(arr, i1 + 1);
5326
+ if (i1 == i2) return v1;
5327
+ var v2 = findValueByRank(arr, i2 + 1);
5328
+ // use linear interpolation
5329
+ var w1 = i2 / (n - 1) - k;
5330
+ var w2 = k - i1 / (n - 1);
5331
+ var v = (v1 * w1 + v2 * w2) * (n - 1);
5332
+ return v;
5333
+ }
5327
5334
 
5328
5335
  function mean(arr) {
5329
5336
  var count = 0,
@@ -8264,20 +8271,25 @@
8264
8271
  _frame;
8265
8272
 
8266
8273
  _position.on('resize', function(e) {
8267
- if (_contentBounds) {
8274
+ if (ready()) {
8268
8275
  onChange({resize: true});
8269
8276
  }
8270
8277
  });
8271
8278
 
8279
+ function ready() { return !!_contentBounds; }
8280
+
8272
8281
  this.reset = function() {
8282
+ if (!ready()) return;
8273
8283
  recenter(_contentBounds.centerX(), _contentBounds.centerY(), 1, {reset: true});
8274
8284
  };
8275
8285
 
8276
8286
  this.home = function() {
8287
+ if (!ready()) return;
8277
8288
  recenter(_contentBounds.centerX(), _contentBounds.centerY(), 1);
8278
8289
  };
8279
8290
 
8280
8291
  this.pan = function(xpix, ypix) {
8292
+ if (!ready()) return;
8281
8293
  var t = this.getTransform();
8282
8294
  recenter(_cx - xpix / t.mx, _cy - ypix / t.my);
8283
8295
  };
@@ -8285,6 +8297,7 @@
8285
8297
  // Zoom to @w (width of the map viewport in coordinates)
8286
8298
  // @xpct, @ypct: optional focus, [0-1]...
8287
8299
  this.zoomToExtent = function(w, xpct, ypct) {
8300
+ if (!ready()) return;
8288
8301
  if (arguments.length < 3) {
8289
8302
  xpct = 0.5;
8290
8303
  ypct = 0.5;
@@ -8304,6 +8317,7 @@
8304
8317
  };
8305
8318
 
8306
8319
  this.zoomByPct = function(pct, xpct, ypct) {
8320
+ if (!ready()) return;
8307
8321
  this.zoomToExtent(this.getBounds().width() / pct, xpct, ypct);
8308
8322
  };
8309
8323
 
package/www/mapshaper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function () {
2
2
 
3
- var VERSION = "0.6.2";
3
+ var VERSION = "0.6.3";
4
4
 
5
5
 
6
6
  var utils = /*#__PURE__*/Object.freeze({
@@ -81,6 +81,7 @@
81
81
  get findValueByPct () { return findValueByPct; },
82
82
  get findValueByRank () { return findValueByRank; },
83
83
  get findMedian () { return findMedian; },
84
+ get findQuantile () { return findQuantile; },
84
85
  get mean () { return mean; },
85
86
  get format () { return format; },
86
87
  get formatter () { return formatter; },
@@ -832,18 +833,24 @@
832
833
  return arr[k];
833
834
  }
834
835
 
835
- //
836
- //
837
836
  function findMedian(arr) {
838
- var n = arr.length,
839
- rank = Math.floor(n / 2) + 1,
840
- median = findValueByRank(arr, rank);
841
- if ((n & 1) == 0) {
842
- median = (median + findValueByRank(arr, rank - 1)) / 2;
843
- }
844
- return median;
837
+ return findQuantile(arr, 0.5);
845
838
  }
846
839
 
840
+ function findQuantile(arr, k) {
841
+ var n = arr.length,
842
+ i1 = Math.floor((n - 1) * k),
843
+ i2 = Math.ceil((n - 1) * k);
844
+ if (i1 < 0 || i2 >= n) return NaN;
845
+ var v1 = findValueByRank(arr, i1 + 1);
846
+ if (i1 == i2) return v1;
847
+ var v2 = findValueByRank(arr, i2 + 1);
848
+ // use linear interpolation
849
+ var w1 = i2 / (n - 1) - k;
850
+ var w2 = k - i1 / (n - 1);
851
+ var v = (v1 * w1 + v2 * w2) * (n - 1);
852
+ return v;
853
+ }
847
854
 
848
855
  function mean(arr) {
849
856
  var count = 0,
@@ -10343,6 +10350,7 @@
10343
10350
  sums: capture,
10344
10351
  average: captureNum,
10345
10352
  median: captureNum,
10353
+ quantile: captureNum,
10346
10354
  min: captureNum,
10347
10355
  max: captureNum,
10348
10356
  mode: capture,
@@ -10357,6 +10365,7 @@
10357
10365
  sum: wrap(utils.sum, 0),
10358
10366
  sums: wrap(sums),
10359
10367
  median: wrap(utils.findMedian),
10368
+ quantile: wrap2(utils.findQuantile),
10360
10369
  min: wrap(min),
10361
10370
  max: wrap(max),
10362
10371
  average: wrap(utils.mean),
@@ -10429,6 +10438,13 @@
10429
10438
  };
10430
10439
  }
10431
10440
 
10441
+ function wrap2(proc) {
10442
+ return function(arg1, arg2) {
10443
+ var c = colNo++;
10444
+ return rowNo > 0 ? proc(cols[c], arg2) : null;
10445
+ };
10446
+ }
10447
+
10432
10448
  function procAll() {
10433
10449
  for (var i=0; i<len; i++) {
10434
10450
  procRecord(i);
package/www/page.css CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  @font-face {
20
20
  font-family: 'Iosevka';
21
- src: url('assets/iosevka-light.woff2') format('woff2'), url('assets/iosevka-light.woff') format('woff');
21
+ src: url('assets/iosevka-light.woff2') format('woff2');
22
22
  }
23
23
 
24
24
 
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,22 +0,0 @@
1
-
2
- map:
3
- mapshaper countyp010.shp name=counties \
4
- -filter 'STATE_FIPS < 72' \
5
- -filter 'COUNTY != ""' \
6
- -dissolve FIPS copy-fields=STATE \
7
- -simplify 2% \
8
- -proj albersusa \
9
- -points inner + name=points \
10
- -i 2012-president-general-counties.csv string-fields=fips name=data \
11
- -filter-fields fips,votes,obama,romney \
12
- -each 'margin = obama - romney' \
13
- -each 'absmargin = Math.abs(margin)' \
14
- -join target=points data keys=FIPS,fips \
15
- -sort absmargin descending \
16
- -svg-style r='Math.sqrt(absmargin) * 0.02' \
17
- -svg-style opacity=0.5 fill='margin > 0 ? "#0061aa" : "#cc0000"' \
18
- -lines STATE target=counties \
19
- -svg-style stroke="#ddd" where='TYPE == "inner"' \
20
- -svg-style stroke="#777" where='TYPE == "outer"' \
21
- -svg-style stroke="#999" where='TYPE == "STATE"' \
22
- -o map.svg target=counties,points
@@ -1,22 +0,0 @@
1
-
2
- map:
3
- mapshaper countyp010.shp name=counties \
4
- -filter 'STATE_FIPS < 72' \
5
- -filter 'COUNTY != ""' \
6
- -dissolve FIPS copy-fields=STATE \
7
- -simplify 2% \
8
- -proj albersusa \
9
- -points inner + name=points \
10
- -i 2012-president-general-counties.csv string-fields=fips name=data \
11
- -filter-fields fips,votes,obama,romney \
12
- -each 'margin = obama - romney' \
13
- -each 'absmargin = Math.abs(margin)' \
14
- -join target=points data keys=FIPS,fips \
15
- -sort absmargin descending \
16
- -svg-style r='Math.sqrt(absmargin) * 0.02' \
17
- -svg-style opacity=0.5 fill='margin > 0 ? "#0061aa" : "#cc0000"' \
18
- -lines STATE target=counties \
19
- -svg-style stroke="#ddd" where='TYPE == "inner"' \
20
- -svg-style stroke="#777" where='TYPE == "outer"' \
21
- -svg-style stroke="#999" where='TYPE == "STATE"' \
22
- -o map.svg target=counties,points
Binary file
Binary file
Binary file
@@ -1,262 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>mapshaper</title>
5
- <meta name="Description" content="A tool for topologically aware shape simplification. Reads and writes Shapefile, GeoJSON and TopoJSON formats.">
6
- <meta charset="UTF-8">
7
- <meta name="viewport" content="width=device-width, initial-scale=1">
8
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
- <link rel="stylesheet" href="../page.css">
10
- <link rel="stylesheet" href="../elements.css">
11
- <link rel="icon"
12
- type="image/png"
13
- href="../images/icon.png">
14
- </head>
15
- <body>
16
- <div class="hidden">
17
- <svg version="1.1" id="home-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
18
- y="0px" width="14px" height="19px" viewBox="0 0 14 16">
19
- <g>
20
- <polygon points="13,7 13,6 12,6 12,5 11,5 11,4 10,4 10,3 9,3 9,2 8,2 8,1 6,1 6,2 5,2 5,3 4,3 4,4 3,4 3,5 2,5
21
- 2,6 1,6 1,7 0,7 0,9 2,9 2,14 6,14 6,10 8,10 8,14 12,14 12,9 14,9 14,7"/>
22
- </g>
23
- </svg>
24
- <svg version="1.1" id="zoom-in-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
25
- y="0px" width="14px" height="21px" viewBox="0 0 14 14">
26
- <g>
27
- <polygon points="13,5 9,5 9,1 5,1 5,5 1,5 1,9 5,9 5,13 9,13 9,9 13,9"/>
28
- </g>
29
- </svg>
30
- <svg version="1.1" id="zoom-out-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
31
- y="0px" width="14px" height="16px" viewBox="0 -1 14 10">
32
- <g>
33
- <polygon points="1,1 13,1 13,5 1,5 1,1" />
34
- </g>
35
- </svg>
36
- <svg version="1.1" id="info-icon2"
37
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="13px" height="18px"
38
- viewBox="-510 390 13 18" xml:space="preserve">
39
- <circle fill="#30D4EF" cx="-503.4" cy="392.8" r="2.7"/>
40
- <rect x="-508" y="405" fill="#30D4EF" width="10" height="3"/>
41
- <rect x="-507" y="398" fill="#30D4EF" width="6" height="3"/>
42
- <rect x="-505" y="400" fill="#30D4EF" width="4" height="6"/>
43
- </svg>
44
-
45
- </div>
46
-
47
- <div class="page-header">
48
- <div class="mapshaper-logo">map<span class="logo-highlight">shaper</span></div>
49
-
50
- <div class="layer-control-btn"><span class="btn header-btn layer-name"></span></div>
51
-
52
- <div class="simplify-control-wrapper"><div class="simplify-control"><div class="header-btn btn simplify-settings-btn">Settings</div>
53
- <div class="slider">
54
- <div class="handle"><img src="../images/slider_handle_v1.png" alt=""/></div>
55
- <div class="track"></div>
56
- </div>
57
- <input type="text" value="label" class="clicktext" />
58
- </div></div>
59
- <div id="mode-buttons" class="page-header-buttons">
60
- <span class="simplify-btn header-btn btn">Simplify</span><span class="separator"></span><span class="console-btn header-btn btn">Console</span><span class="separator"></span><span class="export-btn header-btn btn">Export</span>
61
- </div>
62
- <div id="splash-buttons" class="page-header-buttons">
63
- <a href="https://github.com/mbloch/mapshaper/wiki"><span id="wiki-btn" class="header-btn btn">Wiki</span></a><span class="separator"></span><a href="https://github.com/mbloch/mapshaper"><span id="github-btn" class="header-btn btn">GitHub</span></a>
64
- </div>
65
- </div>
66
-
67
- <div id="mshp-not-supported" class="main-area">
68
- <div class="info-box">
69
- <h3>Unfortunately, mapshaper can't run in <span class="unsupported-browser">this web browser</span></h3>
70
- <div>For best results, try <a href="https://www.google.com/chrome/browser/desktop/">Google Chrome</a> or <a href="http://www.mozilla.org/en-US/firefox/new/">Mozilla Firefox</a>.</div>
71
- </div>
72
- </div>
73
-
74
- <div class="layer-control main-area popup-dialog">
75
- <div class="info-box">
76
- <div class="info-box-scrolled">
77
- <div class="layer-menu">
78
- <h3>Layers</h3>
79
- <div class="pin-all pinnable">
80
- <img class="pin-btn unpinned" src="images/eye.png">
81
- <img class="pin-btn pinned" src="images/eye2.png">
82
- </div>
83
- <div class="layer-list"></div>
84
- <div><div id="add-file-btn" class="dialog-btn btn">Add a file</div></div>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
-
90
- <div class="export-options main-area popup-dialog">
91
- <div class="info-box">
92
- <h3>Export menu</h3>
93
- <div style="height:3px"></div>
94
- <div class=export-layers>
95
- <h4>Layers</h4>
96
- <div class="export-layer-list option-menu"></div>
97
- </div>
98
- <h4>File format</h4>
99
- <div class="export-formats option-menu">
100
- </div>
101
-
102
- <div class="option-menu"><input type="text" class="advanced-options" placeholder="command line options" /><div class="tip-button">?<div class="tip-anchor">
103
- <div class="tip">Enter options from the command line
104
- interface. Examples: "bbox" "no-quantization"
105
- "precision=0.001"</div></div></div></div>
106
- <div class="cancel-btn btn dialog-btn">Cancel</div>
107
- <div class="save-btn btn dialog-btn">Export</div>
108
- </div>
109
- </div>
110
-
111
- <div class="simplify-options main-area popup-dialog">
112
- <div class="info-box">
113
- <h3>Simplification menu</h3>
114
- <div class="option-menu">
115
- <div><label for="import-retain-opt"><input type="checkbox" class="checkbox import-retain-opt"/>prevent shape removal</label>
116
- <div class="tip-button">?<div class="tip-anchor">
117
- <div class="tip">Prevent small polygon features from
118
- disappearing at high simplification. Keeps
119
- the largest ring of multi-ring features.
120
- </div></div></div></div>
121
- <div class="planar-opt-wrapper"><label for="planar-opt"><input type="checkbox" class="checkbox planar-opt"/>use planar geometry</label>
122
- <div class="tip-button">?<div class="tip-anchor">
123
- <div class="tip">Interpret x, y values as Cartesian coordinates
124
- on a plane, rather than longitude, latitude
125
- coordinates on a sphere.
126
- </div></div></div></div>
127
- </div>
128
-
129
- <h4>Method</h4>
130
- <div class="option-menu">
131
-
132
- <div><label><input type="radio" name="method" value="dp" class="radio">Douglas-Peucker</label><div class="tip-button">?<div class="tip-anchor">
133
- <div class="tip">Simplified lines remain within a set
134
- distance of original lines. Good for
135
- thinning dense points, but spikes
136
- tend to form at high simplification.</div></div></div>
137
- </div>
138
-
139
- <div><label><input type="radio" name="method" value="visvalingam" class="radio">Visvalingam / effective area</label><div class="tip-button">?<div class="tip-anchor">
140
- <div class="tip">Lines are simplified by iteratively
141
- removing the point that forms
142
- the least-area triangle with two
143
- adjacent points.</div></div></div>
144
- </div>
145
-
146
- <div><label><input type="radio" name="method" value="weighted_visvalingam" class="radio">Visvalingam / weighted area</label><div class="tip-button">?<div class="tip-anchor">
147
- <div class="tip">Points located at the vertex
148
- of more acute angles are
149
- preferentially removed, for
150
- a smoother appearance.</div></div></div></div>
151
-
152
-
153
- </div> <!-- option menu -->
154
-
155
- <div>
156
- <div class="cancel-btn btn dialog-btn">Cancel</div>
157
- <div class="submit-btn btn dialog-btn">Apply</div>
158
- </div>
159
- </div> <!-- .info-box -->
160
- </div> <!-- simplify-options -->
161
-
162
- <div id="splash-screen" class="main-area">
163
- <div>
164
- <h3>Mapshaper is an editor for map data</h3>
165
- </div>
166
- <div id="drop-areas" class="drop-area-wrapper main-area">
167
-
168
- <div class="file-catalog catalog-area">
169
- </div>
170
- <div class="file-catalog-spacer spacer"></div>
171
-
172
- <div id="import-drop" class="drop-area">
173
- <h4>Drop files here or <span class="inline-btn btn" id="file-selection-btn"><span class="label-text">select</span></span> from a folder</h4>
174
- <div class="subtitle">Shapefile, GeoJSON, TopoJSON, DBF and CSV files are supported</div>
175
- <div class="subtitle">Files can be loose or in a zip archive</div>
176
-
177
- </div>
178
- <div class="spacer"></div>
179
- <div id="import-quick-drop" class="drop-area">
180
- <h4>Quick import</h4>
181
- <div class="subtitle">Drop files here to import with default settings</div>
182
- </div>
183
- </div>
184
- </div>
185
-
186
- <div id="import-options" class="main-area popup-dialog">
187
- <div class="info-box">
188
- <!-- <h4>Queued files</h4> -->
189
-
190
- <div class="dropped-file-list"></div>
191
-
192
- <div class="option-menu">
193
-
194
- <div id="path-import-options">
195
- <h4>Options</h4>
196
-
197
- <div><label for="repair-intersections-opt"><input type="checkbox" checked class="checkbox" id="repair-intersections-opt"/>detect line intersections</label>
198
- <div class="tip-button">?<div class="tip-anchor">
199
-
200
- <div class="tip">Detect line intersections, including
201
- self-intersections, to help identify
202
- topological errors in a dataset.</div></div></div></div>
203
-
204
- <div><label for="snap-points-opt"><input type="checkbox" class="checkbox" id="snap-points-opt" />snap vertices</label>
205
- <div class="tip-button">?<div class="tip-anchor">
206
- <div class="tip">Fix topology errors by snapping
207
- together points with nearly identical
208
- coordinates. This option does not
209
- apply to TopoJSON files.</div></div></div></div>
210
- <div style="height:5px"></div>
211
-
212
- </div>
213
-
214
- <div><input type="text" class="advanced-options" placeholder="command line options" /><div class="tip-button">?<div class="tip-anchor">
215
- <div class="tip">Enter options from the command line
216
- interface. Examples: "no-topology"
217
- "encoding=big5"</div></div></div></div>
218
-
219
- </div>
220
-
221
- <div id="import-buttons">
222
- <div class="cancel-btn btn dialog-btn">Cancel</div>
223
- <div class="add-btn btn dialog-btn">Select</div>
224
- <div class="submit-btn btn dialog-btn default-btn">Import</div>
225
- </div>
226
-
227
- </div> <!-- .info-box -->
228
- </div> <!-- import-options -->
229
-
230
-
231
- <!-- TODO: remove #mshp-main-page without causing the map to jitter when resized -->
232
- <div id="mshp-main-page">
233
- <div class="console main-area console-area">
234
- <div class="console-window"><div class="console-buffer selectable"></div></div>
235
- </div>
236
- <div class="mshp-main-map main-area map-area">
237
- <div class="coordinate-info colored-text selectable"></div>
238
- <div class="intersection-display">
239
- <div class="intersection-count">0 line intersections</div>
240
- <div class="repair-btn text-btn colored-text">Repair</div>
241
- </div>
242
- <div class="map-layers"></div>
243
- </div>
244
- </div>
245
-
246
- <div id="import-options-drop-area" class="main-area drop-area-wrapper hidden">
247
- <div class="drop-area"></div>
248
- </div>
249
-
250
- <script src="../zip.js" type="text/javascript"></script>
251
- <script src="../modules.js" type="text/javascript"></script>
252
- <script src="../mapshaper.js" type="text/javascript"></script>
253
- <script src="manifest.js" type="text/javascript"></script>
254
- <script src="../mapshaper-gui.js" type="text/javascript"></script>
255
- <script type="text/javascript">
256
- zip.workerScripts = {
257
- deflater: ['../z-worker.js', '../pako.deflate.js', '../codecs.js'],
258
- inflater: ['../z-worker.js', '../pako.inflate.js', '../codecs.js']
259
- };
260
- </script>
261
- </body>
262
- </html>
@@ -1,27 +0,0 @@
1
- mapshaper.manifest = {
2
- catalog: {
3
- cols: 3,
4
- title: 'NACIS PCD Example Datasets',
5
- items: [{
6
- title: 'Sample One',
7
- subtitle: 'Inspection practice',
8
- files: [
9
- 'https://dl.dropboxusercontent.com/s/krtvbezmvgg102x/a.zip?dl=1'
10
- ]
11
- }, {
12
- title: 'Sample Two',
13
- subtitle: 'Line intersections',
14
- url: '',
15
- files: [
16
- 'https://dl.dropboxusercontent.com/s/0duqwhavungcxl3/b.zip?dl=1'
17
- ]
18
- }, {
19
- title: 'Sample Three',
20
- subtitle: 'U.S. counties',
21
- url: '',
22
- files: [
23
- 'https://dl.dropboxusercontent.com/s/4bwywe2856gmnrd/c.zip?dl=1'
24
- ]
25
- }]
26
- }
27
- };