我已经在我的应用程序中实现了谷歌地图。我已经编写了自己的覆盖类扩展 ItemizedOverlay 以添加覆盖。使用相同的覆盖类,我还添加了一个覆盖来显示我在地图上的当前位置。
此覆盖类的 onTouchEvent 用于确定触摸的位置,并能够将覆盖对象移动到地图上的任何位置。然而,这导致了一些问题。指向我当前位置的指针也变为可移动的。我想修复这个当前位置指针。
为此,我正在创建一个新类 MyNewLocationOverLay,它扩展了我之前创建的自定义叠加层。我的计划是覆盖 onTouchEvent 方法并返回 super.onTouchEvent 以防触摸其他覆盖,并在触摸 mylocation 覆盖时返回 true。如何找出点击了哪些叠加层。我试过了:
public class myOverlayclass extends OverLayClass {
public myOverlayclass(Drawable marker) {
super(marker);
// TODO Auto-generated constructor stub
}
public boolean onTouchEvent(MotionEvent motionEvent, MapView mapView) {
System.out.println("The overlays are*************"+mapView.getOverlays()); //this lists the overlays
return super.onTouchEvent(motionEvent, mapView);
}
}
我需要比较它以找出触摸了哪个叠加层。如何比较叠加层。
if (mapView.getOverlays().contains(mYLocationOverLay))
似乎不起作用。