(int lx, int ly)
| 594 | } |
| 595 | |
| 596 | private void handleTap(int lx, int ly) { |
| 597 | // Hit-test markers first (top-most wins). |
| 598 | for (int i = markers.size() - 1; i >= 0; i--) { |
| 599 | Marker m = (Marker) markers.get(i); |
| 600 | if (!m.isVisible() || m.getOnClick() == null) { |
| 601 | continue; |
| 602 | } |
| 603 | Point p = engine.latLngToScreen(m.getPosition()); |
| 604 | int w = m.getIcon() != null ? m.getIcon().getWidth() : 16; |
| 605 | int h = m.getIcon() != null ? m.getIcon().getHeight() : 16; |
| 606 | int left = p.getX() - (int) (w * m.getAnchorU()); |
| 607 | int top = p.getY() - (int) (h * m.getAnchorV()); |
| 608 | if (lx >= left && lx <= left + w && ly >= top && ly <= top + h) { |
| 609 | m.getOnClick().actionPerformed(new ActionEvent(m, lx, ly)); |
| 610 | return; |
| 611 | } |
| 612 | } |
| 613 | LatLng geo = engine.screenToLatLng(lx, ly); |
| 614 | for (Object tapListener : tapListeners) { |
| 615 | ((MapTapListener) tapListener).mapTapped(this, geo, lx, ly); |
| 616 | } |
| 617 | } |
| 618 | |
| 619 | private void fireCameraChanged() { |
| 620 | if (cameraListeners.isEmpty()) { |
no test coverage detected