2012-12-05 27 views
0

如何在我的代碼中添加以下函數?網址是這樣的:how to add more marker in osm map in android please help me?我想補充功能打印每一個地方的用戶在吐司消息如何添加觸摸事件以顯示OSM中的經度和緯度

public boolean onTouchEvent(MotionEvent event, MapView mapView) { 

    if (event.getAction() == 1) {     
     GeoPoint geopoint = (GeoPoint) mapView.getProjection().fromPixels((int) event.getX(), (int) event.getY()); 
     // latitude 
     double lat = geopoint.getLatitudeE6()/1E6; 
     // longitude 
     double lon = geopoint.getLongitudeE6()/1E6; 
     Toast.makeText(context, "Lat: " + lat + ", Lon: "+lon, Toast.LENGTH_SHORT).show(); 
    }        
    return false; 
} 
+0

檢查此鏈接http://code.google.com/p/osmbonuspack/ – vodich

+0

我修改此代碼,但並不表明LA噸在每個位置我發現這種方法在googlemap哪個代碼我粘貼上面如何我在OSM中實現代碼? –

回答

1

使用這段代碼的觸摸屏上顯示其緯度和經度在地圖上的位置的吐司消息和創建這個類的一個對象,並添加它的mapsOverlay

class MapOverlay extends com.google.android.maps.Overlay 
{ 
    @Override 
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    { 
     //... 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event, MapView mapView) 
    { 
     //---when user lifts his finger--- 
     if (event.getAction() == MotionEvent.ACTION_UP) {     
      GeoPoint p = mapView.getProjection().fromPixels(
       (int) event.getX(), 
       (int) event.getY()); 
       Toast.makeText(getBaseContext(), 
        p.getLatitudeE6()/1E6 + "," + 
        p.getLongitudeE6() /1E6 , 
        Toast.LENGTH_SHORT).show(); 
     }        
     return false; 
    }   
} 

加入這一行

mapView.getOverlays().add(new MapOverlay()); 
+0

我在哪一類粘貼這個代碼? –

+0

即時通訊不使用谷歌地圖即時通訊使用打開sTreet地圖 –

+0

要麼保持它作爲一個單獨的類,或者你可以把它放在活動類本身,你添加到你的MapView覆蓋 –

相關問題