@dra2020/baseclient 1.0.40 → 1.0.41

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/lib/poly/topo.ts CHANGED
@@ -14,6 +14,7 @@ import * as Q from './quad';
14
14
  import * as PP from './polypack';
15
15
  import * as PL from './polylabel';
16
16
  import { selfIntersectFast } from './shamos';
17
+ import { polyContainsPoint } from './pointinpoly';
17
18
 
18
19
  export type Topo = any;
19
20
 
@@ -193,6 +194,24 @@ function bigTimeString(ms: number): string
193
194
  return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
194
195
  }
195
196
 
197
+ function intpt(f: any): { x: number, y: number }
198
+ {
199
+ let x = 0, y = 0;
200
+ for (let p in ['INTPTLON20','INTPTLON10','INTPTLON','labelx'])
201
+ if (f.properties[p] && !isNaN(Number(f.properties[p])))
202
+ {
203
+ x = Number(f.properties[p]);
204
+ break;
205
+ }
206
+ for (let p in ['INTPTLAT20','INTPTLAT10','INTPTLAT','labely'])
207
+ if (f.properties[p] && !isNaN(Number(f.properties[p])))
208
+ {
209
+ y = Number(f.properties[p]);
210
+ break;
211
+ }
212
+ return {x: x, y: y};
213
+ }
214
+
196
215
  export interface SimplifyOptions
197
216
  {
198
217
  minArea?: number,
@@ -294,7 +313,8 @@ export function topoSimplifyCollection(col: any, options?: SimplifyOptions): any
294
313
  if (! bDecided)
295
314
  {
296
315
  let pp = PP.polyPackTopoArcs(testtopo, arcs);
297
- if (selfIntersectFast(pp))
316
+ let {x,y} = intpt(f);
317
+ if (selfIntersectFast(pp) || (x && y && !polyContainsPoint(pp, x, y)))
298
318
  {
299
319
  keepArcs(topo, oOld.arcs, keepweight);
300
320
  nBad++;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dra2020/baseclient",
3
- "version": "1.0.40",
3
+ "version": "1.0.41",
4
4
  "description": "Utility functions for Javascript projects.",
5
5
  "main": "dist/baseclient.js",
6
6
  "types": "./dist/all/all.d.ts",