Android MapView ItemizedOverlay 绘制 onTap

发布于 2024-11-11 06:35:02 字数 113 浏览 3 评论 0原文

我正在尝试在 ItemizedOverlay 的 Draw 方法中绘制自定义形状。是否可以获取绘制形状的 onTap 事件。 目前 onTap 适用于默认的可绘制/标记。如何让它适用于Draw方法中绘制的形状?

I am trying to draw a custom shape in Draw method of ItemizedOverlay. Is it possible to get onTap event for the shape drawn.
Currently onTap works for default drawable/marker. How to make it work for the shape drawn in Draw method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娜些时光,永不杰束 2024-11-18 06:35:02

看起来你可以覆盖
来自逐项覆盖的 hittest 方法。

用测试来代替该方法,看看是否符合你的形状。
请稍后将您的解决方案发布在这里供其他人使用。

这是原始的 android 版本

    protected boolean hitTest(OverlayItem item, Drawable marker, int hitX, int hitY) {
            Point eventPos = new Point(hitX, hitY);
            Point itemHitPosOnDisplay = calculateItemPostionRelativeToDisplay(item.getPoint());
            Point distance = Point.substract(eventPos, itemHitPosOnDisplay);
            if (marker == null) {
                    marker = this.defaultMarker;
            }
            if (Math.abs(distance.x) < marker.getIntrinsicWidth() / 2
                            && Math.abs(distance.y) < marker.getIntrinsicHeight() / 2) {
                    return true;
            }
            return false;
    }

问候,
史蒂芬

It looks like you can override
the hittest method from itemized overlay.

Replace the method with a test to see if you hit your shape.
Please post your solution here for others afterwards.

Here is the original android version

    protected boolean hitTest(OverlayItem item, Drawable marker, int hitX, int hitY) {
            Point eventPos = new Point(hitX, hitY);
            Point itemHitPosOnDisplay = calculateItemPostionRelativeToDisplay(item.getPoint());
            Point distance = Point.substract(eventPos, itemHitPosOnDisplay);
            if (marker == null) {
                    marker = this.defaultMarker;
            }
            if (Math.abs(distance.x) < marker.getIntrinsicWidth() / 2
                            && Math.abs(distance.y) < marker.getIntrinsicHeight() / 2) {
                    return true;
            }
            return false;
    }

Regards,
Stéphane

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文