Java 如何控制覆盖项';谷歌安卓地图上的尺寸是多少?

Java 如何控制覆盖项';谷歌安卓地图上的尺寸是多少?,java,android,google-maps,Java,Android,Google Maps,所以我有几乎完全相同的,除了他们决定使用的解决方案的黑客工作对我来说根本不起作用。我需要一个真正的解决方案,所以我决定对android地图源代码进行反向工程,以找到最佳解决方案 我当前的解决方案是重写类中扩展OverlayItem的draw方法,但随后我遇到了一个问题,即点击地图上的overlay项不起作用(点击注册在实际项目绘制位置以外的位置)。因此,我将继续挖掘,直到找到合适的方法组合来覆盖。对于任何与我有相同问题的人来说,解决方法其实非常简单 您只需在OverlayItem的drawabl

所以我有几乎完全相同的,除了他们决定使用的解决方案的黑客工作对我来说根本不起作用。我需要一个真正的解决方案,所以我决定对android地图源代码进行反向工程,以找到最佳解决方案


我当前的解决方案是重写类中扩展OverlayItem的draw方法,但随后我遇到了一个问题,即点击地图上的overlay项不起作用(点击注册在实际项目绘制位置以外的位置)。因此,我将继续挖掘,直到找到合适的方法组合来覆盖。

对于任何与我有相同问题的人来说,解决方法其实非常简单

您只需在OverlayItem的drawable上设置边界,如下所示:

Drawable d = myOverlayItem.getMarker(0);
d.setBounds(-xWidth/2, -yWidth/2, xWidth, yWidth);
getMarker的参数实际上取决于overlayItem的状态,但就我个人而言,所有状态都是相同的,所以我不在乎,只使用了0

我不确定解决方案将如何随实际设置边界的位置而变化,但对我来说,我是在ItemizeOverlay子类的draw方法中进行的:

@Override
public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow) {
    if (!shadow) {
        // Do your projection calculations here, if necessary

        for (int i = 0; i < mOverlays.size(); i++) {
            Drawable d = mOverlays.get(i).getMarker(0);
            d.setBounds(-width/2, -height/2, width/2, height/2);
        }
    }

    super.draw(canvas, mapView, shadow);
}
(它发生在canvas.translate调用中)

有人关心的可能性很小


(对maps.jar进行反向工程花费了我大量的工作,因此我最好能充分利用我的努力)。

对于任何与我有相同问题的人来说,解决方案其实非常简单

您只需在OverlayItem的drawable上设置边界,如下所示:

Drawable d = myOverlayItem.getMarker(0);
d.setBounds(-xWidth/2, -yWidth/2, xWidth, yWidth);
getMarker的参数实际上取决于overlayItem的状态,但就我个人而言,所有状态都是相同的,所以我不在乎,只使用了0

我不确定解决方案将如何随实际设置边界的位置而变化,但对我来说,我是在ItemizeOverlay子类的draw方法中进行的:

@Override
public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow) {
    if (!shadow) {
        // Do your projection calculations here, if necessary

        for (int i = 0; i < mOverlays.size(); i++) {
            Drawable d = mOverlays.get(i).getMarker(0);
            d.setBounds(-width/2, -height/2, width/2, height/2);
        }
    }

    super.draw(canvas, mapView, shadow);
}
(它发生在canvas.translate调用中)

有人关心的可能性很小

(对maps.jar进行反向工程花了我很多工作,所以我最好能充分利用我的努力)