Java OSMDROID OnItemEstureListener
我需要关于osmdroid功能代码的帮助, 当我点击标记时,它不会返回标题和描述 谁能帮我。。。这是我的 代码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
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;
}
};
}