Java osmdroid中的OnSingleTapp调用多个项
我已经用makers创建了一个Osmdroid映射,但是有些标记非常接近,所以当我点击它时,会出现很多“onSingleTapUp调用”,就像我在同一时间点击所有这些标记一样,我不明白为什么,即使我能清楚地看到两个覆盖项之间的空白,监听器也会同时听到两个点击Java osmdroid中的OnSingleTapp调用多个项,java,android,osmdroid,itemizedoverlay,Java,Android,Osmdroid,Itemizedoverlay,我已经用makers创建了一个Osmdroid映射,但是有些标记非常接近,所以当我点击它时,会出现很多“onSingleTapUp调用”,就像我在同一时间点击所有这些标记一样,我不明白为什么,即使我能清楚地看到两个覆盖项之间的空白,监听器也会同时听到两个点击 addOverlayItems(); MyItemizedOverlay itemizedOverlay = new MyItemizedOverlay(context, items, gestureList
addOverlayItems();
MyItemizedOverlay itemizedOverlay = new MyItemizedOverlay(context, items, gestureListener);
map.getOverlays().add(itemizedOverlay);
private void addOverlayItems(){
for(int i = 0; i < sparetimes.size(); i++){
SpareTimeObject sparetime = sparetimes.get(i);
String title = sparetime.getLeisureTitle();
String description = sparetime.getLeisureDescription();
if(title == null){
title = "Titre a definir";
}
if(description == null){
description = "Description a definir";
}
if(sparetime.getLeisureLatitude() != null && sparetime.getLeisureLongitude() != null){
double lat = Double.parseDouble(sparetime.getLeisureLatitude());
double lon = Double.parseDouble(sparetime.getLeisureLongitude());
GeoPoint geoPoint = new GeoPoint(lat, lon);
MyOverlayItem item = new MyOverlayItem(title, description, geoPoint);
items.add(item);
}else{
Log.i(TAG, "aucune localisation");
}
}
}
ItemizedIconOverlay.OnItemGestureListener<MyOverlayItem> gestureListener = new OnItemGestureListener<MyOverlayItem>() {
@Override
public boolean onItemLongPress(int arg0, MyOverlayItem arg1) {
Log.i("onItemLongPress", ""+items.get(arg0).getTitle());
return false;
}
@Override
public boolean onItemSingleTapUp(int arg0, MyOverlayItem arg1) {
Log.i("onItemSingleTapUp", ""+arg1.getTitle());
Intent intent = new Intent(context, SpareTimeCardActivity.class);
addToIntent(intent, sparetimes.get(arg0));
context.startActivity(intent);
return false;
}
};
addOverlayItems();
MyItemizedOverlay itemizedOverlay=新建MyItemizedOverlay(上下文、项目、手势侦听器);
map.getOverlays().add(ItemizeOverlay);
私有void addOverlayItems(){
对于(int i=0;i
一个想法-标记图标周围是否有透明空间?因此,可能图标看起来没有重叠,但它们的透明区域是重叠的。我使用了默认标记,因此我认为周围没有任何空间,我不确定。默认标记周围没有空间。那么,主要问题是什么?是重叠的项目被“击中”的问题,你想知道为什么,还是非重叠的项目被“击中”?除非为其中一项返回true,否则将为您点击的位置处的每个项调用onItemSingleTapUp()。这是设计的。不重叠的项目会被击中。