map-ol-utils 0.1.11 → 0.1.13
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/dist/index.cjs +45 -29
- package/dist/index.js +45 -29
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -426,6 +426,37 @@ var buildMassMarksStyles = (getImgUrlFn) => {
|
|
|
426
426
|
return massMarksStyles;
|
|
427
427
|
};
|
|
428
428
|
};
|
|
429
|
+
var selectEventHandle = (vectorLayer, feature) => {
|
|
430
|
+
const data = feature.getProperties();
|
|
431
|
+
const { activeStyle } = data;
|
|
432
|
+
feature.setStyle(activeStyle);
|
|
433
|
+
emitter_default.emit("selected-feature", data);
|
|
434
|
+
vectorLayer.set("_hasActive", true);
|
|
435
|
+
if (vectorLayer.get("_isDynamic")) {
|
|
436
|
+
const activeImage = activeStyle.getImage();
|
|
437
|
+
setTimeout(() => {
|
|
438
|
+
emitter_default.emit(
|
|
439
|
+
"dynamic-marker",
|
|
440
|
+
Object.assign({}, data.rawData || {}, {
|
|
441
|
+
lnglat: data.lnglat,
|
|
442
|
+
style: data.style,
|
|
443
|
+
crsForm: data.crsForm,
|
|
444
|
+
width: activeImage.getWidth(),
|
|
445
|
+
height: activeImage.getHeight()
|
|
446
|
+
})
|
|
447
|
+
);
|
|
448
|
+
}, 1e3);
|
|
449
|
+
}
|
|
450
|
+
const isAutoFit = vectorLayer.get("_isAutoFit");
|
|
451
|
+
if (isAutoFit) {
|
|
452
|
+
const view = instance.getView();
|
|
453
|
+
view.animate({
|
|
454
|
+
duration: 1e3,
|
|
455
|
+
zoom: view.getZoom(),
|
|
456
|
+
center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
};
|
|
429
460
|
var createSelectByLayer = (vectorLayer) => {
|
|
430
461
|
const interaction = new import_interaction.Select({
|
|
431
462
|
style: null,
|
|
@@ -447,37 +478,21 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
447
478
|
}
|
|
448
479
|
});
|
|
449
480
|
interaction.on("select", (evt) => {
|
|
481
|
+
const isClusterLayer = vectorLayer.get("_isClusterLayer");
|
|
450
482
|
const { selected, deselected } = evt;
|
|
451
483
|
if (selected.length) {
|
|
452
484
|
const feature = selected[0];
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
lnglat: data.lnglat,
|
|
465
|
-
style: data.style,
|
|
466
|
-
crsForm: data.crsForm,
|
|
467
|
-
width: activeImage.getWidth(),
|
|
468
|
-
height: activeImage.getHeight()
|
|
469
|
-
})
|
|
470
|
-
);
|
|
471
|
-
}, 1e3);
|
|
472
|
-
}
|
|
473
|
-
const isAutoFit = vectorLayer.get("_isAutoFit");
|
|
474
|
-
if (isAutoFit) {
|
|
475
|
-
const view = instance.getView();
|
|
476
|
-
view.animate({
|
|
477
|
-
duration: 1e3,
|
|
478
|
-
zoom: view.getZoom(),
|
|
479
|
-
center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
|
|
480
|
-
});
|
|
485
|
+
if (isClusterLayer) {
|
|
486
|
+
const features = feature.get("features");
|
|
487
|
+
if (features.length === 1) {
|
|
488
|
+
const cluterFeature = features[0];
|
|
489
|
+
const data = cluterFeature.getProperties();
|
|
490
|
+
const { activeStyle } = data;
|
|
491
|
+
feature.setStyle(activeStyle);
|
|
492
|
+
selectEventHandle(vectorLayer, cluterFeature);
|
|
493
|
+
}
|
|
494
|
+
} else {
|
|
495
|
+
selectEventHandle(vectorLayer, feature);
|
|
481
496
|
}
|
|
482
497
|
}
|
|
483
498
|
if (deselected.length) {
|
|
@@ -691,7 +706,8 @@ var createClusterLayer = (dataList, config) => {
|
|
|
691
706
|
});
|
|
692
707
|
vectorLayer.setProperties({
|
|
693
708
|
_isCustom: true,
|
|
694
|
-
_isVectorLayer: true
|
|
709
|
+
_isVectorLayer: true,
|
|
710
|
+
_isClusterLayer: true
|
|
695
711
|
});
|
|
696
712
|
if (openClick) {
|
|
697
713
|
createSelectByLayer(vectorLayer);
|
package/dist/index.js
CHANGED
|
@@ -359,6 +359,37 @@ var buildMassMarksStyles = (getImgUrlFn) => {
|
|
|
359
359
|
return massMarksStyles;
|
|
360
360
|
};
|
|
361
361
|
};
|
|
362
|
+
var selectEventHandle = (vectorLayer, feature) => {
|
|
363
|
+
const data = feature.getProperties();
|
|
364
|
+
const { activeStyle } = data;
|
|
365
|
+
feature.setStyle(activeStyle);
|
|
366
|
+
emitter_default.emit("selected-feature", data);
|
|
367
|
+
vectorLayer.set("_hasActive", true);
|
|
368
|
+
if (vectorLayer.get("_isDynamic")) {
|
|
369
|
+
const activeImage = activeStyle.getImage();
|
|
370
|
+
setTimeout(() => {
|
|
371
|
+
emitter_default.emit(
|
|
372
|
+
"dynamic-marker",
|
|
373
|
+
Object.assign({}, data.rawData || {}, {
|
|
374
|
+
lnglat: data.lnglat,
|
|
375
|
+
style: data.style,
|
|
376
|
+
crsForm: data.crsForm,
|
|
377
|
+
width: activeImage.getWidth(),
|
|
378
|
+
height: activeImage.getHeight()
|
|
379
|
+
})
|
|
380
|
+
);
|
|
381
|
+
}, 1e3);
|
|
382
|
+
}
|
|
383
|
+
const isAutoFit = vectorLayer.get("_isAutoFit");
|
|
384
|
+
if (isAutoFit) {
|
|
385
|
+
const view = instance.getView();
|
|
386
|
+
view.animate({
|
|
387
|
+
duration: 1e3,
|
|
388
|
+
zoom: view.getZoom(),
|
|
389
|
+
center: getCenter(feature.getGeometry().getExtent())
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
};
|
|
362
393
|
var createSelectByLayer = (vectorLayer) => {
|
|
363
394
|
const interaction = new Select({
|
|
364
395
|
style: null,
|
|
@@ -380,37 +411,21 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
380
411
|
}
|
|
381
412
|
});
|
|
382
413
|
interaction.on("select", (evt) => {
|
|
414
|
+
const isClusterLayer = vectorLayer.get("_isClusterLayer");
|
|
383
415
|
const { selected, deselected } = evt;
|
|
384
416
|
if (selected.length) {
|
|
385
417
|
const feature = selected[0];
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
lnglat: data.lnglat,
|
|
398
|
-
style: data.style,
|
|
399
|
-
crsForm: data.crsForm,
|
|
400
|
-
width: activeImage.getWidth(),
|
|
401
|
-
height: activeImage.getHeight()
|
|
402
|
-
})
|
|
403
|
-
);
|
|
404
|
-
}, 1e3);
|
|
405
|
-
}
|
|
406
|
-
const isAutoFit = vectorLayer.get("_isAutoFit");
|
|
407
|
-
if (isAutoFit) {
|
|
408
|
-
const view = instance.getView();
|
|
409
|
-
view.animate({
|
|
410
|
-
duration: 1e3,
|
|
411
|
-
zoom: view.getZoom(),
|
|
412
|
-
center: getCenter(feature.getGeometry().getExtent())
|
|
413
|
-
});
|
|
418
|
+
if (isClusterLayer) {
|
|
419
|
+
const features = feature.get("features");
|
|
420
|
+
if (features.length === 1) {
|
|
421
|
+
const cluterFeature = features[0];
|
|
422
|
+
const data = cluterFeature.getProperties();
|
|
423
|
+
const { activeStyle } = data;
|
|
424
|
+
feature.setStyle(activeStyle);
|
|
425
|
+
selectEventHandle(vectorLayer, cluterFeature);
|
|
426
|
+
}
|
|
427
|
+
} else {
|
|
428
|
+
selectEventHandle(vectorLayer, feature);
|
|
414
429
|
}
|
|
415
430
|
}
|
|
416
431
|
if (deselected.length) {
|
|
@@ -624,7 +639,8 @@ var createClusterLayer = (dataList, config) => {
|
|
|
624
639
|
});
|
|
625
640
|
vectorLayer.setProperties({
|
|
626
641
|
_isCustom: true,
|
|
627
|
-
_isVectorLayer: true
|
|
642
|
+
_isVectorLayer: true,
|
|
643
|
+
_isClusterLayer: true
|
|
628
644
|
});
|
|
629
645
|
if (openClick) {
|
|
630
646
|
createSelectByLayer(vectorLayer);
|