@deck.gl/carto 8.9.25 → 8.9.27
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/LICENSE +19 -0
- package/dist/cartoRasterTile-worker.js +2 -2
- package/dist/cartoSpatialTile-worker.js +2 -2
- package/dist/cartoVectorTile-worker.js +502 -2
- package/dist/dist.dev.js +521 -17
- package/dist/es5/api/maps-v3-client.js +1 -1
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/layers/carto-tile-layer.js +1 -10
- package/dist/es5/layers/carto-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +1 -2
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +1 -2
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +2 -2
- package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +2 -2
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +53 -2
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +1 -1
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/layers/carto-tile-layer.js +2 -10
- package/dist/esm/layers/carto-tile-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +1 -2
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +1 -2
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +2 -2
- package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +2 -2
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +53 -2
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist.min.js +24 -24
- package/package.json +8 -8
- package/src/api/maps-v3-client.ts +1 -1
- package/src/layers/carto-tile-layer.ts +2 -12
- package/src/layers/h3-tile-layer.ts +1 -2
- package/src/layers/quadbin-tile-layer.ts +1 -2
- package/src/layers/schema/carto-raster-tile-loader.ts +1 -1
- package/src/layers/schema/carto-spatial-tile-loader.ts +1 -1
- package/src/layers/schema/carto-vector-tile-loader.ts +57 -4
- package/typed/layers/carto-tile-layer.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
package/dist/dist.dev.js
CHANGED
|
@@ -5355,6 +5355,473 @@ var __exports__ = (() => {
|
|
|
5355
5355
|
}
|
|
5356
5356
|
});
|
|
5357
5357
|
|
|
5358
|
+
// ../../node_modules/earcut/src/earcut.js
|
|
5359
|
+
var require_earcut = __commonJS({
|
|
5360
|
+
"../../node_modules/earcut/src/earcut.js"(exports, module) {
|
|
5361
|
+
"use strict";
|
|
5362
|
+
module.exports = earcut2;
|
|
5363
|
+
module.exports.default = earcut2;
|
|
5364
|
+
function earcut2(data, holeIndices, dim) {
|
|
5365
|
+
dim = dim || 2;
|
|
5366
|
+
var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];
|
|
5367
|
+
if (!outerNode || outerNode.next === outerNode.prev)
|
|
5368
|
+
return triangles;
|
|
5369
|
+
var minX, minY, maxX, maxY, x, y, invSize;
|
|
5370
|
+
if (hasHoles)
|
|
5371
|
+
outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
|
|
5372
|
+
if (data.length > 80 * dim) {
|
|
5373
|
+
minX = maxX = data[0];
|
|
5374
|
+
minY = maxY = data[1];
|
|
5375
|
+
for (var i = dim; i < outerLen; i += dim) {
|
|
5376
|
+
x = data[i];
|
|
5377
|
+
y = data[i + 1];
|
|
5378
|
+
if (x < minX)
|
|
5379
|
+
minX = x;
|
|
5380
|
+
if (y < minY)
|
|
5381
|
+
minY = y;
|
|
5382
|
+
if (x > maxX)
|
|
5383
|
+
maxX = x;
|
|
5384
|
+
if (y > maxY)
|
|
5385
|
+
maxY = y;
|
|
5386
|
+
}
|
|
5387
|
+
invSize = Math.max(maxX - minX, maxY - minY);
|
|
5388
|
+
invSize = invSize !== 0 ? 1 / invSize : 0;
|
|
5389
|
+
}
|
|
5390
|
+
earcutLinked(outerNode, triangles, dim, minX, minY, invSize);
|
|
5391
|
+
return triangles;
|
|
5392
|
+
}
|
|
5393
|
+
function linkedList(data, start, end, dim, clockwise) {
|
|
5394
|
+
var i, last;
|
|
5395
|
+
if (clockwise === signedArea(data, start, end, dim) > 0) {
|
|
5396
|
+
for (i = start; i < end; i += dim)
|
|
5397
|
+
last = insertNode(i, data[i], data[i + 1], last);
|
|
5398
|
+
} else {
|
|
5399
|
+
for (i = end - dim; i >= start; i -= dim)
|
|
5400
|
+
last = insertNode(i, data[i], data[i + 1], last);
|
|
5401
|
+
}
|
|
5402
|
+
if (last && equals(last, last.next)) {
|
|
5403
|
+
removeNode(last);
|
|
5404
|
+
last = last.next;
|
|
5405
|
+
}
|
|
5406
|
+
return last;
|
|
5407
|
+
}
|
|
5408
|
+
function filterPoints(start, end) {
|
|
5409
|
+
if (!start)
|
|
5410
|
+
return start;
|
|
5411
|
+
if (!end)
|
|
5412
|
+
end = start;
|
|
5413
|
+
var p = start, again;
|
|
5414
|
+
do {
|
|
5415
|
+
again = false;
|
|
5416
|
+
if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
|
|
5417
|
+
removeNode(p);
|
|
5418
|
+
p = end = p.prev;
|
|
5419
|
+
if (p === p.next)
|
|
5420
|
+
break;
|
|
5421
|
+
again = true;
|
|
5422
|
+
} else {
|
|
5423
|
+
p = p.next;
|
|
5424
|
+
}
|
|
5425
|
+
} while (again || p !== end);
|
|
5426
|
+
return end;
|
|
5427
|
+
}
|
|
5428
|
+
function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {
|
|
5429
|
+
if (!ear)
|
|
5430
|
+
return;
|
|
5431
|
+
if (!pass && invSize)
|
|
5432
|
+
indexCurve(ear, minX, minY, invSize);
|
|
5433
|
+
var stop = ear, prev, next;
|
|
5434
|
+
while (ear.prev !== ear.next) {
|
|
5435
|
+
prev = ear.prev;
|
|
5436
|
+
next = ear.next;
|
|
5437
|
+
if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {
|
|
5438
|
+
triangles.push(prev.i / dim);
|
|
5439
|
+
triangles.push(ear.i / dim);
|
|
5440
|
+
triangles.push(next.i / dim);
|
|
5441
|
+
removeNode(ear);
|
|
5442
|
+
ear = next.next;
|
|
5443
|
+
stop = next.next;
|
|
5444
|
+
continue;
|
|
5445
|
+
}
|
|
5446
|
+
ear = next;
|
|
5447
|
+
if (ear === stop) {
|
|
5448
|
+
if (!pass) {
|
|
5449
|
+
earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);
|
|
5450
|
+
} else if (pass === 1) {
|
|
5451
|
+
ear = cureLocalIntersections(filterPoints(ear), triangles, dim);
|
|
5452
|
+
earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);
|
|
5453
|
+
} else if (pass === 2) {
|
|
5454
|
+
splitEarcut(ear, triangles, dim, minX, minY, invSize);
|
|
5455
|
+
}
|
|
5456
|
+
break;
|
|
5457
|
+
}
|
|
5458
|
+
}
|
|
5459
|
+
}
|
|
5460
|
+
function isEar(ear) {
|
|
5461
|
+
var a = ear.prev, b = ear, c = ear.next;
|
|
5462
|
+
if (area(a, b, c) >= 0)
|
|
5463
|
+
return false;
|
|
5464
|
+
var p = ear.next.next;
|
|
5465
|
+
while (p !== ear.prev) {
|
|
5466
|
+
if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
|
|
5467
|
+
return false;
|
|
5468
|
+
p = p.next;
|
|
5469
|
+
}
|
|
5470
|
+
return true;
|
|
5471
|
+
}
|
|
5472
|
+
function isEarHashed(ear, minX, minY, invSize) {
|
|
5473
|
+
var a = ear.prev, b = ear, c = ear.next;
|
|
5474
|
+
if (area(a, b, c) >= 0)
|
|
5475
|
+
return false;
|
|
5476
|
+
var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;
|
|
5477
|
+
var minZ = zOrder(minTX, minTY, minX, minY, invSize), maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);
|
|
5478
|
+
var p = ear.prevZ, n = ear.nextZ;
|
|
5479
|
+
while (p && p.z >= minZ && n && n.z <= maxZ) {
|
|
5480
|
+
if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
|
|
5481
|
+
return false;
|
|
5482
|
+
p = p.prevZ;
|
|
5483
|
+
if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
|
|
5484
|
+
return false;
|
|
5485
|
+
n = n.nextZ;
|
|
5486
|
+
}
|
|
5487
|
+
while (p && p.z >= minZ) {
|
|
5488
|
+
if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
|
|
5489
|
+
return false;
|
|
5490
|
+
p = p.prevZ;
|
|
5491
|
+
}
|
|
5492
|
+
while (n && n.z <= maxZ) {
|
|
5493
|
+
if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
|
|
5494
|
+
return false;
|
|
5495
|
+
n = n.nextZ;
|
|
5496
|
+
}
|
|
5497
|
+
return true;
|
|
5498
|
+
}
|
|
5499
|
+
function cureLocalIntersections(start, triangles, dim) {
|
|
5500
|
+
var p = start;
|
|
5501
|
+
do {
|
|
5502
|
+
var a = p.prev, b = p.next.next;
|
|
5503
|
+
if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
|
|
5504
|
+
triangles.push(a.i / dim);
|
|
5505
|
+
triangles.push(p.i / dim);
|
|
5506
|
+
triangles.push(b.i / dim);
|
|
5507
|
+
removeNode(p);
|
|
5508
|
+
removeNode(p.next);
|
|
5509
|
+
p = start = b;
|
|
5510
|
+
}
|
|
5511
|
+
p = p.next;
|
|
5512
|
+
} while (p !== start);
|
|
5513
|
+
return filterPoints(p);
|
|
5514
|
+
}
|
|
5515
|
+
function splitEarcut(start, triangles, dim, minX, minY, invSize) {
|
|
5516
|
+
var a = start;
|
|
5517
|
+
do {
|
|
5518
|
+
var b = a.next.next;
|
|
5519
|
+
while (b !== a.prev) {
|
|
5520
|
+
if (a.i !== b.i && isValidDiagonal(a, b)) {
|
|
5521
|
+
var c = splitPolygon(a, b);
|
|
5522
|
+
a = filterPoints(a, a.next);
|
|
5523
|
+
c = filterPoints(c, c.next);
|
|
5524
|
+
earcutLinked(a, triangles, dim, minX, minY, invSize);
|
|
5525
|
+
earcutLinked(c, triangles, dim, minX, minY, invSize);
|
|
5526
|
+
return;
|
|
5527
|
+
}
|
|
5528
|
+
b = b.next;
|
|
5529
|
+
}
|
|
5530
|
+
a = a.next;
|
|
5531
|
+
} while (a !== start);
|
|
5532
|
+
}
|
|
5533
|
+
function eliminateHoles(data, holeIndices, outerNode, dim) {
|
|
5534
|
+
var queue = [], i, len, start, end, list;
|
|
5535
|
+
for (i = 0, len = holeIndices.length; i < len; i++) {
|
|
5536
|
+
start = holeIndices[i] * dim;
|
|
5537
|
+
end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
|
5538
|
+
list = linkedList(data, start, end, dim, false);
|
|
5539
|
+
if (list === list.next)
|
|
5540
|
+
list.steiner = true;
|
|
5541
|
+
queue.push(getLeftmost(list));
|
|
5542
|
+
}
|
|
5543
|
+
queue.sort(compareX);
|
|
5544
|
+
for (i = 0; i < queue.length; i++) {
|
|
5545
|
+
eliminateHole(queue[i], outerNode);
|
|
5546
|
+
outerNode = filterPoints(outerNode, outerNode.next);
|
|
5547
|
+
}
|
|
5548
|
+
return outerNode;
|
|
5549
|
+
}
|
|
5550
|
+
function compareX(a, b) {
|
|
5551
|
+
return a.x - b.x;
|
|
5552
|
+
}
|
|
5553
|
+
function eliminateHole(hole, outerNode) {
|
|
5554
|
+
outerNode = findHoleBridge(hole, outerNode);
|
|
5555
|
+
if (outerNode) {
|
|
5556
|
+
var b = splitPolygon(outerNode, hole);
|
|
5557
|
+
filterPoints(b, b.next);
|
|
5558
|
+
}
|
|
5559
|
+
}
|
|
5560
|
+
function findHoleBridge(hole, outerNode) {
|
|
5561
|
+
var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;
|
|
5562
|
+
do {
|
|
5563
|
+
if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {
|
|
5564
|
+
var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
|
|
5565
|
+
if (x <= hx && x > qx) {
|
|
5566
|
+
qx = x;
|
|
5567
|
+
if (x === hx) {
|
|
5568
|
+
if (hy === p.y)
|
|
5569
|
+
return p;
|
|
5570
|
+
if (hy === p.next.y)
|
|
5571
|
+
return p.next;
|
|
5572
|
+
}
|
|
5573
|
+
m = p.x < p.next.x ? p : p.next;
|
|
5574
|
+
}
|
|
5575
|
+
}
|
|
5576
|
+
p = p.next;
|
|
5577
|
+
} while (p !== outerNode);
|
|
5578
|
+
if (!m)
|
|
5579
|
+
return null;
|
|
5580
|
+
if (hx === qx)
|
|
5581
|
+
return m;
|
|
5582
|
+
var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;
|
|
5583
|
+
p = m;
|
|
5584
|
+
do {
|
|
5585
|
+
if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
|
|
5586
|
+
tan = Math.abs(hy - p.y) / (hx - p.x);
|
|
5587
|
+
if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {
|
|
5588
|
+
m = p;
|
|
5589
|
+
tanMin = tan;
|
|
5590
|
+
}
|
|
5591
|
+
}
|
|
5592
|
+
p = p.next;
|
|
5593
|
+
} while (p !== stop);
|
|
5594
|
+
return m;
|
|
5595
|
+
}
|
|
5596
|
+
function sectorContainsSector(m, p) {
|
|
5597
|
+
return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;
|
|
5598
|
+
}
|
|
5599
|
+
function indexCurve(start, minX, minY, invSize) {
|
|
5600
|
+
var p = start;
|
|
5601
|
+
do {
|
|
5602
|
+
if (p.z === null)
|
|
5603
|
+
p.z = zOrder(p.x, p.y, minX, minY, invSize);
|
|
5604
|
+
p.prevZ = p.prev;
|
|
5605
|
+
p.nextZ = p.next;
|
|
5606
|
+
p = p.next;
|
|
5607
|
+
} while (p !== start);
|
|
5608
|
+
p.prevZ.nextZ = null;
|
|
5609
|
+
p.prevZ = null;
|
|
5610
|
+
sortLinked(p);
|
|
5611
|
+
}
|
|
5612
|
+
function sortLinked(list) {
|
|
5613
|
+
var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;
|
|
5614
|
+
do {
|
|
5615
|
+
p = list;
|
|
5616
|
+
list = null;
|
|
5617
|
+
tail = null;
|
|
5618
|
+
numMerges = 0;
|
|
5619
|
+
while (p) {
|
|
5620
|
+
numMerges++;
|
|
5621
|
+
q = p;
|
|
5622
|
+
pSize = 0;
|
|
5623
|
+
for (i = 0; i < inSize; i++) {
|
|
5624
|
+
pSize++;
|
|
5625
|
+
q = q.nextZ;
|
|
5626
|
+
if (!q)
|
|
5627
|
+
break;
|
|
5628
|
+
}
|
|
5629
|
+
qSize = inSize;
|
|
5630
|
+
while (pSize > 0 || qSize > 0 && q) {
|
|
5631
|
+
if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
|
|
5632
|
+
e = p;
|
|
5633
|
+
p = p.nextZ;
|
|
5634
|
+
pSize--;
|
|
5635
|
+
} else {
|
|
5636
|
+
e = q;
|
|
5637
|
+
q = q.nextZ;
|
|
5638
|
+
qSize--;
|
|
5639
|
+
}
|
|
5640
|
+
if (tail)
|
|
5641
|
+
tail.nextZ = e;
|
|
5642
|
+
else
|
|
5643
|
+
list = e;
|
|
5644
|
+
e.prevZ = tail;
|
|
5645
|
+
tail = e;
|
|
5646
|
+
}
|
|
5647
|
+
p = q;
|
|
5648
|
+
}
|
|
5649
|
+
tail.nextZ = null;
|
|
5650
|
+
inSize *= 2;
|
|
5651
|
+
} while (numMerges > 1);
|
|
5652
|
+
return list;
|
|
5653
|
+
}
|
|
5654
|
+
function zOrder(x, y, minX, minY, invSize) {
|
|
5655
|
+
x = 32767 * (x - minX) * invSize;
|
|
5656
|
+
y = 32767 * (y - minY) * invSize;
|
|
5657
|
+
x = (x | x << 8) & 16711935;
|
|
5658
|
+
x = (x | x << 4) & 252645135;
|
|
5659
|
+
x = (x | x << 2) & 858993459;
|
|
5660
|
+
x = (x | x << 1) & 1431655765;
|
|
5661
|
+
y = (y | y << 8) & 16711935;
|
|
5662
|
+
y = (y | y << 4) & 252645135;
|
|
5663
|
+
y = (y | y << 2) & 858993459;
|
|
5664
|
+
y = (y | y << 1) & 1431655765;
|
|
5665
|
+
return x | y << 1;
|
|
5666
|
+
}
|
|
5667
|
+
function getLeftmost(start) {
|
|
5668
|
+
var p = start, leftmost = start;
|
|
5669
|
+
do {
|
|
5670
|
+
if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y)
|
|
5671
|
+
leftmost = p;
|
|
5672
|
+
p = p.next;
|
|
5673
|
+
} while (p !== start);
|
|
5674
|
+
return leftmost;
|
|
5675
|
+
}
|
|
5676
|
+
function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
|
|
5677
|
+
return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
|
|
5678
|
+
}
|
|
5679
|
+
function isValidDiagonal(a, b) {
|
|
5680
|
+
return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);
|
|
5681
|
+
}
|
|
5682
|
+
function area(p, q, r) {
|
|
5683
|
+
return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
|
|
5684
|
+
}
|
|
5685
|
+
function equals(p1, p2) {
|
|
5686
|
+
return p1.x === p2.x && p1.y === p2.y;
|
|
5687
|
+
}
|
|
5688
|
+
function intersects(p1, q1, p2, q2) {
|
|
5689
|
+
var o1 = sign(area(p1, q1, p2));
|
|
5690
|
+
var o2 = sign(area(p1, q1, q2));
|
|
5691
|
+
var o3 = sign(area(p2, q2, p1));
|
|
5692
|
+
var o4 = sign(area(p2, q2, q1));
|
|
5693
|
+
if (o1 !== o2 && o3 !== o4)
|
|
5694
|
+
return true;
|
|
5695
|
+
if (o1 === 0 && onSegment(p1, p2, q1))
|
|
5696
|
+
return true;
|
|
5697
|
+
if (o2 === 0 && onSegment(p1, q2, q1))
|
|
5698
|
+
return true;
|
|
5699
|
+
if (o3 === 0 && onSegment(p2, p1, q2))
|
|
5700
|
+
return true;
|
|
5701
|
+
if (o4 === 0 && onSegment(p2, q1, q2))
|
|
5702
|
+
return true;
|
|
5703
|
+
return false;
|
|
5704
|
+
}
|
|
5705
|
+
function onSegment(p, q, r) {
|
|
5706
|
+
return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);
|
|
5707
|
+
}
|
|
5708
|
+
function sign(num) {
|
|
5709
|
+
return num > 0 ? 1 : num < 0 ? -1 : 0;
|
|
5710
|
+
}
|
|
5711
|
+
function intersectsPolygon(a, b) {
|
|
5712
|
+
var p = a;
|
|
5713
|
+
do {
|
|
5714
|
+
if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b))
|
|
5715
|
+
return true;
|
|
5716
|
+
p = p.next;
|
|
5717
|
+
} while (p !== a);
|
|
5718
|
+
return false;
|
|
5719
|
+
}
|
|
5720
|
+
function locallyInside(a, b) {
|
|
5721
|
+
return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
|
|
5722
|
+
}
|
|
5723
|
+
function middleInside(a, b) {
|
|
5724
|
+
var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;
|
|
5725
|
+
do {
|
|
5726
|
+
if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)
|
|
5727
|
+
inside = !inside;
|
|
5728
|
+
p = p.next;
|
|
5729
|
+
} while (p !== a);
|
|
5730
|
+
return inside;
|
|
5731
|
+
}
|
|
5732
|
+
function splitPolygon(a, b) {
|
|
5733
|
+
var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;
|
|
5734
|
+
a.next = b;
|
|
5735
|
+
b.prev = a;
|
|
5736
|
+
a2.next = an;
|
|
5737
|
+
an.prev = a2;
|
|
5738
|
+
b2.next = a2;
|
|
5739
|
+
a2.prev = b2;
|
|
5740
|
+
bp.next = b2;
|
|
5741
|
+
b2.prev = bp;
|
|
5742
|
+
return b2;
|
|
5743
|
+
}
|
|
5744
|
+
function insertNode(i, x, y, last) {
|
|
5745
|
+
var p = new Node(i, x, y);
|
|
5746
|
+
if (!last) {
|
|
5747
|
+
p.prev = p;
|
|
5748
|
+
p.next = p;
|
|
5749
|
+
} else {
|
|
5750
|
+
p.next = last.next;
|
|
5751
|
+
p.prev = last;
|
|
5752
|
+
last.next.prev = p;
|
|
5753
|
+
last.next = p;
|
|
5754
|
+
}
|
|
5755
|
+
return p;
|
|
5756
|
+
}
|
|
5757
|
+
function removeNode(p) {
|
|
5758
|
+
p.next.prev = p.prev;
|
|
5759
|
+
p.prev.next = p.next;
|
|
5760
|
+
if (p.prevZ)
|
|
5761
|
+
p.prevZ.nextZ = p.nextZ;
|
|
5762
|
+
if (p.nextZ)
|
|
5763
|
+
p.nextZ.prevZ = p.prevZ;
|
|
5764
|
+
}
|
|
5765
|
+
function Node(i, x, y) {
|
|
5766
|
+
this.i = i;
|
|
5767
|
+
this.x = x;
|
|
5768
|
+
this.y = y;
|
|
5769
|
+
this.prev = null;
|
|
5770
|
+
this.next = null;
|
|
5771
|
+
this.z = null;
|
|
5772
|
+
this.prevZ = null;
|
|
5773
|
+
this.nextZ = null;
|
|
5774
|
+
this.steiner = false;
|
|
5775
|
+
}
|
|
5776
|
+
earcut2.deviation = function(data, holeIndices, dim, triangles) {
|
|
5777
|
+
var hasHoles = holeIndices && holeIndices.length;
|
|
5778
|
+
var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
|
|
5779
|
+
var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
|
|
5780
|
+
if (hasHoles) {
|
|
5781
|
+
for (var i = 0, len = holeIndices.length; i < len; i++) {
|
|
5782
|
+
var start = holeIndices[i] * dim;
|
|
5783
|
+
var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
|
5784
|
+
polygonArea -= Math.abs(signedArea(data, start, end, dim));
|
|
5785
|
+
}
|
|
5786
|
+
}
|
|
5787
|
+
var trianglesArea = 0;
|
|
5788
|
+
for (i = 0; i < triangles.length; i += 3) {
|
|
5789
|
+
var a = triangles[i] * dim;
|
|
5790
|
+
var b = triangles[i + 1] * dim;
|
|
5791
|
+
var c = triangles[i + 2] * dim;
|
|
5792
|
+
trianglesArea += Math.abs((data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1]));
|
|
5793
|
+
}
|
|
5794
|
+
return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);
|
|
5795
|
+
};
|
|
5796
|
+
function signedArea(data, start, end, dim) {
|
|
5797
|
+
var sum = 0;
|
|
5798
|
+
for (var i = start, j = end - dim; i < end; i += dim) {
|
|
5799
|
+
sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
|
|
5800
|
+
j = i;
|
|
5801
|
+
}
|
|
5802
|
+
return sum;
|
|
5803
|
+
}
|
|
5804
|
+
earcut2.flatten = function(data) {
|
|
5805
|
+
var dim = data[0][0].length, result = {
|
|
5806
|
+
vertices: [],
|
|
5807
|
+
holes: [],
|
|
5808
|
+
dimensions: dim
|
|
5809
|
+
}, holeIndex = 0;
|
|
5810
|
+
for (var i = 0; i < data.length; i++) {
|
|
5811
|
+
for (var j = 0; j < data[i].length; j++) {
|
|
5812
|
+
for (var d = 0; d < dim; d++)
|
|
5813
|
+
result.vertices.push(data[i][j][d]);
|
|
5814
|
+
}
|
|
5815
|
+
if (i > 0) {
|
|
5816
|
+
holeIndex += data[i - 1].length;
|
|
5817
|
+
result.holes.push(holeIndex);
|
|
5818
|
+
}
|
|
5819
|
+
}
|
|
5820
|
+
return result;
|
|
5821
|
+
};
|
|
5822
|
+
}
|
|
5823
|
+
});
|
|
5824
|
+
|
|
5358
5825
|
// ../../node_modules/pbf/node_modules/ieee754/index.js
|
|
5359
5826
|
var require_ieee754 = __commonJS({
|
|
5360
5827
|
"../../node_modules/pbf/node_modules/ieee754/index.js"(exports) {
|
|
@@ -11469,6 +11936,9 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
11469
11936
|
// src/layers/carto-tile-layer.ts
|
|
11470
11937
|
var import_core2 = __toESM(require_core2());
|
|
11471
11938
|
|
|
11939
|
+
// src/layers/schema/carto-vector-tile-loader.ts
|
|
11940
|
+
var import_earcut = __toESM(require_earcut());
|
|
11941
|
+
|
|
11472
11942
|
// src/layers/schema/fast-pbf.ts
|
|
11473
11943
|
function readPackedTypedArray(TypedArray, pbf, obj) {
|
|
11474
11944
|
const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
|
|
@@ -11747,13 +12217,56 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
11747
12217
|
category: "geometry",
|
|
11748
12218
|
parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
|
|
11749
12219
|
parseSync: parseCartoVectorTile,
|
|
11750
|
-
worker:
|
|
12220
|
+
worker: true,
|
|
11751
12221
|
options: DEFAULT_OPTIONS
|
|
11752
12222
|
};
|
|
12223
|
+
function triangulatePolygon(polygons, target, {
|
|
12224
|
+
startPosition,
|
|
12225
|
+
endPosition,
|
|
12226
|
+
indices
|
|
12227
|
+
}) {
|
|
12228
|
+
const coordLength = polygons.positions.size;
|
|
12229
|
+
const start = startPosition * coordLength;
|
|
12230
|
+
const end = endPosition * coordLength;
|
|
12231
|
+
const polygonPositions = polygons.positions.value.subarray(start, end);
|
|
12232
|
+
const holes = indices.slice(1).map((n) => n - startPosition);
|
|
12233
|
+
const triangles = (0, import_earcut.default)(polygonPositions, holes, coordLength);
|
|
12234
|
+
for (let t = 0, tl = triangles.length; t < tl; ++t) {
|
|
12235
|
+
target.push(startPosition + triangles[t]);
|
|
12236
|
+
}
|
|
12237
|
+
}
|
|
12238
|
+
function triangulate(polygons) {
|
|
12239
|
+
const {
|
|
12240
|
+
polygonIndices,
|
|
12241
|
+
positions,
|
|
12242
|
+
primitivePolygonIndices
|
|
12243
|
+
} = polygons;
|
|
12244
|
+
const triangles = [];
|
|
12245
|
+
let rangeStart = 0;
|
|
12246
|
+
for (let i = 0; i < polygonIndices.value.length - 1; i++) {
|
|
12247
|
+
const startPosition = polygonIndices.value[i];
|
|
12248
|
+
const endPosition = polygonIndices.value[i + 1];
|
|
12249
|
+
const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
|
|
12250
|
+
const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
|
|
12251
|
+
rangeStart = rangeEnd;
|
|
12252
|
+
triangulatePolygon(polygons, triangles, {
|
|
12253
|
+
startPosition,
|
|
12254
|
+
endPosition,
|
|
12255
|
+
indices
|
|
12256
|
+
});
|
|
12257
|
+
}
|
|
12258
|
+
polygons.triangles = {
|
|
12259
|
+
value: new Uint32Array(triangles),
|
|
12260
|
+
size: 1
|
|
12261
|
+
};
|
|
12262
|
+
}
|
|
11753
12263
|
function parseCartoVectorTile(arrayBuffer, options) {
|
|
11754
12264
|
if (!arrayBuffer)
|
|
11755
12265
|
return null;
|
|
11756
12266
|
const tile = parsePbf(arrayBuffer, TileReader);
|
|
12267
|
+
if (tile.polygons && !tile.polygons.triangles) {
|
|
12268
|
+
triangulate(tile.polygons);
|
|
12269
|
+
}
|
|
11757
12270
|
return tile;
|
|
11758
12271
|
}
|
|
11759
12272
|
var carto_vector_tile_loader_default = CartoVectorTileLoader;
|
|
@@ -11996,20 +12509,13 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
11996
12509
|
if (!url) {
|
|
11997
12510
|
return Promise.reject("Invalid URL");
|
|
11998
12511
|
}
|
|
11999
|
-
|
|
12512
|
+
const loadOptions = this.getLoadOptions();
|
|
12000
12513
|
const {
|
|
12001
|
-
fetch: fetch2
|
|
12002
|
-
formatTiles
|
|
12514
|
+
fetch: fetch2
|
|
12003
12515
|
} = this.props;
|
|
12004
12516
|
const {
|
|
12005
12517
|
signal
|
|
12006
12518
|
} = tile;
|
|
12007
|
-
if (formatTiles === TILE_FORMATS.BINARY) {
|
|
12008
|
-
loadOptions = {
|
|
12009
|
-
...loadOptions,
|
|
12010
|
-
mimeType: "application/vnd.carto-vector-tile"
|
|
12011
|
-
};
|
|
12012
|
-
}
|
|
12013
12519
|
return fetch2(url, {
|
|
12014
12520
|
propName: "data",
|
|
12015
12521
|
layer: this,
|
|
@@ -12238,7 +12744,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
12238
12744
|
category: "geometry",
|
|
12239
12745
|
parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
|
|
12240
12746
|
parseSync: parseCartoRasterTile,
|
|
12241
|
-
worker:
|
|
12747
|
+
worker: true,
|
|
12242
12748
|
options: DEFAULT_OPTIONS2
|
|
12243
12749
|
};
|
|
12244
12750
|
function parseCartoRasterTile(arrayBuffer, options) {
|
|
@@ -12420,7 +12926,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
12420
12926
|
category: "geometry",
|
|
12421
12927
|
parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
|
|
12422
12928
|
parseSync: parseCartoSpatialTile,
|
|
12423
|
-
worker:
|
|
12929
|
+
worker: true,
|
|
12424
12930
|
options: DEFAULT_OPTIONS3
|
|
12425
12931
|
};
|
|
12426
12932
|
function parseCartoSpatialTile(arrayBuffer, options) {
|
|
@@ -12593,8 +13099,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
12593
13099
|
...this.getLoadOptions(),
|
|
12594
13100
|
cartoSpatialTile: {
|
|
12595
13101
|
scheme: "h3"
|
|
12596
|
-
}
|
|
12597
|
-
mimeType: "application/vnd.carto-spatial-tile"
|
|
13102
|
+
}
|
|
12598
13103
|
}
|
|
12599
13104
|
})];
|
|
12600
13105
|
}
|
|
@@ -12762,8 +13267,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
|
|
|
12762
13267
|
...this.getLoadOptions(),
|
|
12763
13268
|
cartoSpatialTile: {
|
|
12764
13269
|
scheme: "quadbin"
|
|
12765
|
-
}
|
|
12766
|
-
mimeType: "application/vnd.carto-spatial-tile"
|
|
13270
|
+
}
|
|
12767
13271
|
}
|
|
12768
13272
|
})];
|
|
12769
13273
|
}
|
|
@@ -13998,7 +14502,7 @@ void main(void) {
|
|
|
13998
14502
|
var import_core10 = __toESM(require_core());
|
|
13999
14503
|
var MAX_GET_LENGTH = 8192;
|
|
14000
14504
|
var DEFAULT_CLIENT = "deck-gl-carto";
|
|
14001
|
-
var V3_MINOR_VERSION = "3.
|
|
14505
|
+
var V3_MINOR_VERSION = "3.2";
|
|
14002
14506
|
async function request2({
|
|
14003
14507
|
method,
|
|
14004
14508
|
url,
|
|
@@ -41,7 +41,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
41
41
|
|
|
42
42
|
var MAX_GET_LENGTH = 8192;
|
|
43
43
|
var DEFAULT_CLIENT = 'deck-gl-carto';
|
|
44
|
-
var V3_MINOR_VERSION = '3.
|
|
44
|
+
var V3_MINOR_VERSION = '3.2';
|
|
45
45
|
|
|
46
46
|
function request(_x) {
|
|
47
47
|
return _request.apply(this, arguments);
|