Java OSMDROID OnItemEstureListener

Java OSMDROID OnItemEstureListener,java,android,map,osmdroid,Java,Android,Map,Osmdroid,我需要关于osmdroid功能代码的帮助, 当我点击标记时,它不会返回标题和描述 谁能帮我。。。这是我的 代码 import java.util.ArrayList; 导入org.osmdroid.util.GeoPoint; 导入org.osmdroid.views.MapController; 导入org.osmdroid.views.MapView; 导入org.osmdroid.views.overlay.itemizedictionoverlay; 导入org.osmdroid.vie

我需要关于osmdroid功能代码的帮助, 当我点击标记时,它不会返回标题和描述

谁能帮我。。。这是我的

代码

import java.util.ArrayList;
导入org.osmdroid.util.GeoPoint;
导入org.osmdroid.views.MapController;
导入org.osmdroid.views.MapView;
导入org.osmdroid.views.overlay.itemizedictionoverlay;
导入org.osmdroid.views.overlay.itemizedictionoverlay.OnItemGestureListener;
导入org.osmdroid.views.overlay.OverlayItem;
导入org.osmdroid.views.overlay.ScaleBarOverlay;
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.Toast;
公共类AndroidOpenStreetMapViewActivity扩展活动{
私人地图视图;
私有映射控制器myMapController;
ArrayList另一个OverlayItemArray;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myOpenMapView=(MapView)findViewById(R.id.openmapview);
肌笔图视图。SetBuilTinZoomControl(真);
myMapController=myOpenMapView.getController();
myMapController.setZoom(2);
//---为多标记创建另一个覆盖
anotherOverlayItemArray=new ArrayList();
另一个OverlayItemArray.add(新的OverlayItem)(
“0,0”,“0,0”,新的地质点(0,0));
另一个OverlayItemArray.add(新的OverlayItem)(
“美国”、“美国”、新地质点(38.883333,-77.016667));
另一个OverlayItemArray.add(新的OverlayItem)(
“中国”、“中国”、新地质点(39.916667116.383333);
另一个OverlayItemArray.add(新的OverlayItem)(
“联合王国”、“联合王国”、新地质点(51.5,-0.116667));
另一个OverlayItemArray.add(新的OverlayItem)(
“德国”、“德国”、新地质点(52.516667、13.383333));
另一个OverlayItemArray.add(新的OverlayItem)(
"韩国","韩国"新地质点(38.316667,127.233333);;
另一个OverlayItemArray.add(新的OverlayItem)(
“印度”,“印度”,新地质点(28.613333,77.208333));
另一个OverlayItemArray.add(新的OverlayItem)(
“俄罗斯”,“俄罗斯”,新地质点(55.75,37.616667));
另一个OverlayItemArray.add(新的OverlayItem)(
“法国”、“法国”、新地质点(48.856667、2.350833));
另一个OverlayItemArray.add(新的OverlayItem)(
“加拿大”、“加拿大”、新地质点(45.4,-75.66666 7));
第二项是第二项
=新的ItemIzedEdiconOverlay(
这是另一个OverlayItemArray,myOnItemGestureListener);
myOpenMapView.getOverlays().add(另一个术语mizedEdiconOverlay);
//---
//添加比例尺
ScaleBarOverlay myScaleBarOverlay=新的ScaleBarOverlay(此);
myOpenMapView.getOverlays().add(myScaleBarOverlay);
}
OnItemEstureListener myOnItemGestureListener
=新的OnItemTestureListener(){
@凌驾
公共布尔值(int arg0,OverlayItem arg1){
//TODO自动生成的方法存根
返回false;
}
@凌驾
公共布尔值onItemSingleTapUp(整型索引,覆盖项项){
Toast.makeText(AndroidOpenStreetMapViewActivity.this,
item.mdDescription+“\n”
+item.mTitle+“\n”
+item.mGeoPoint.getLatitudeE6()+“:“+item.mGeoPoint.getLongitudeE6(),
Toast.LENGTH_LONG).show();
返回true;
}
};
}

谢谢。。。有人能建议一种显示标题和描述的方法吗?。

使用以下方法代替ItemizedConoverlay:

  • osmdroid Itemized或Overlay with Focus
import java.util.ArrayList;
import org.osmdroid.util.GeoPoint;
 import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.ItemizedIconOverlay;
import org.osmdroid.views.overlay.ItemizedIconOverlay.OnItemGestureListener;
import org.osmdroid.views.overlay.OverlayItem;
import org.osmdroid.views.overlay.ScaleBarOverlay;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class AndroidOpenStreetMapViewActivity extends Activity {

private MapView myOpenMapView;
private MapController myMapController;

ArrayList<OverlayItem> anotherOverlayItemArray;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    myOpenMapView = (MapView)findViewById(R.id.openmapview);
    myOpenMapView.setBuiltInZoomControls(true);
    myMapController = myOpenMapView.getController();
    myMapController.setZoom(2);

    //--- Create Another Overlay for multi marker
    anotherOverlayItemArray = new ArrayList<OverlayItem>();
    anotherOverlayItemArray.add(new OverlayItem(
      "0, 0", "0, 0", new GeoPoint(0, 0)));
    anotherOverlayItemArray.add(new OverlayItem(
      "US", "US", new GeoPoint(38.883333, -77.016667)));
    anotherOverlayItemArray.add(new OverlayItem(
      "China", "China", new GeoPoint(39.916667, 116.383333)));
    anotherOverlayItemArray.add(new OverlayItem(
      "United Kingdom", "United Kingdom", new GeoPoint(51.5, -0.116667)));
    anotherOverlayItemArray.add(new OverlayItem(
      "Germany", "Germany", new GeoPoint(52.516667, 13.383333)));
    anotherOverlayItemArray.add(new OverlayItem(
      "Korea", "Korea", new GeoPoint(38.316667, 127.233333)));
    anotherOverlayItemArray.add(new OverlayItem(
      "India", "India", new GeoPoint(28.613333, 77.208333)));
    anotherOverlayItemArray.add(new OverlayItem(
      "Russia", "Russia", new GeoPoint(55.75, 37.616667)));
    anotherOverlayItemArray.add(new OverlayItem(
      "France", "France", new GeoPoint(48.856667, 2.350833)));
    anotherOverlayItemArray.add(new OverlayItem(
      "Canada", "Canada", new GeoPoint(45.4, -75.666667)));

    ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay 
     = new ItemizedIconOverlay<OverlayItem>(
       this, anotherOverlayItemArray, myOnItemGestureListener);
    myOpenMapView.getOverlays().add(anotherItemizedIconOverlay);
    //---

    //Add Scale Bar
    ScaleBarOverlay myScaleBarOverlay = new ScaleBarOverlay(this);
    myOpenMapView.getOverlays().add(myScaleBarOverlay);
}

OnItemGestureListener<OverlayItem> myOnItemGestureListener
= new OnItemGestureListener<OverlayItem>(){

 @Override
  public boolean onItemLongPress(int arg0, OverlayItem arg1) {
 // TODO Auto-generated method stub
 return false;
  }

 @Override
  public boolean onItemSingleTapUp(int index, OverlayItem item) {
  Toast.makeText(AndroidOpenStreetMapViewActivity.this, 
 item.mDescription + "\n"
 + item.mTitle + "\n"
 + item.mGeoPoint.getLatitudeE6() + " : " + item.mGeoPoint.getLongitudeE6(), 
 Toast.LENGTH_LONG).show();
 return true;
}

};

}