Skip to content

Commit 635aafc

Browse files
deyihufuzhenn
authored andcommitted
fix #922, hitDetect ignore shadow (#993)
* hitDetect ignore shadow * remove identify
1 parent c6e19f1 commit 635aafc

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/renderer/geometry/Painter.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,8 @@ class Painter extends Class {
498498

499499
_prepareShadow(ctx, symbol) {
500500
if (symbol['shadowBlur']) {
501-
ctx.shadowBlur = symbol['shadowBlur'];
501+
//Ignore shadows when hit detection
502+
ctx.shadowBlur = (this.isHitTesting() ? 0 : symbol['shadowBlur']);
502503
ctx.shadowColor = symbol['shadowColor'] || '#000';
503504
ctx.shadowOffsetX = symbol['shadowOffsetX'] || 0;
504505
ctx.shadowOffsetY = symbol['shadowOffsetY'] || 0;

src/renderer/map/MapCanvasRenderer.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ class MapCanvasRenderer extends MapRenderer {
209209
renderer.render(framestamp);
210210
} else if (renderer.drawOnInteracting &&
211211
(layer === map.getBaseLayer() || inTime ||
212-
map.isZooming() && layer.options['forceRenderOnZooming'] ||
213-
map.isMoving() && layer.options['forceRenderOnMoving'] ||
214-
map.isRotating() && layer.options['forceRenderOnRotating'])
212+
map.isZooming() && layer.options['forceRenderOnZooming'] ||
213+
map.isMoving() && layer.options['forceRenderOnMoving'] ||
214+
map.isRotating() && layer.options['forceRenderOnRotating'])
215215
) {
216216
// call drawOnInteracting to redraw the layer
217217
renderer.prepareRender();
@@ -436,6 +436,11 @@ class MapCanvasRenderer extends MapRenderer {
436436
if (renderer.isBlank && renderer.isBlank()) {
437437
continue;
438438
}
439+
// renderer.hitDetect(point)) . This can't ignore the shadows.
440+
/**
441+
* TODO
442+
* This requires a better way to judge
443+
*/
439444
if (layer.options['cursor'] !== 'default' && renderer.hitDetect(point)) {
440445
cursor = layer.options['cursor'] || 'pointer';
441446
break;

0 commit comments

Comments
 (0)