title: Adding Overlay to OSMDROID
body: <p>I have been struggling with this long time.
  I am trying to add Overlay on my map.
  I am using the open source OSMdroid. but all I get by the example is a straight red line from one corner to another. 
  My target is to add some icon where my geoPoint is set.</p>
  
  <p>here is my code:</p>
  
  <pre><code> package osmdemo.demo;
  
  import java.util.List;
  
  import microsoft.mappoint.TileSystem;
  
  import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
  import org.osmdroid.util.GeoPoint;
  import org.osmdroid.views.MapController;
  import org.osmdroid.views.MapView;
  import org.osmdroid.views.MapView.Projection;
  import org.osmdroid.views.overlay.Overlay;
  import org.osmdroid.views.overlay.ScaleBarOverlay;
  import org.osmdroid.views.util.constants.MapViewConstants;
  
  import android.app.Activity;
  import android.content.Context;
  import android.graphics.Canvas;
  import android.graphics.Color;
  import android.graphics.Paint;
  import android.graphics.Paint.Style;
  import android.graphics.Rect;
  import android.location.LocationManager;
  import android.os.Bundle;
  
  public class map extends Activity implements MapViewConstants
  {
  
      /** Called when the activity is first created. */
  
      protected static final String PROVIDER_NAME = LocationManager.GPS_PROVIDER;
      MapController mapController;
      MapView mapView;
      ScaleBarOverlay mScaleBarOverlay;
      private MapOverlay mmapOverlay = null;
      private LocationManager mLocMgr;
  
      @Override
      public void onCreate(Bundle savedInstanceState)
      {
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          mapView = (MapView) findViewById(R.id.mapview);
  
          mapView.setTileSource(TileSourceFactory.MAPNIK);
          mapView.setBuiltInZoomControls(true);
          mapView.setMultiTouchControls(true);
  
          mapController = mapView.getController();
          mapController.setZoom(20);
          GeoPoint point2 = new GeoPoint(31.987968, 34.783069);
          mapController.setCenter(point2);
  
          this.mmapOverlay = new MapOverlay(this);
  
          List&lt;Overlay&gt; listOfOverlays = mapView.getOverlays();
          listOfOverlays.add(mmapOverlay);
          mapView.invalidate();
      }
  
      public class MapOverlay extends org.osmdroid.views.overlay.Overlay
      {
  
          public MapOverlay(Context ctx)
          {
              super(ctx);
              // TODO Auto-generated constructor stub
          }
  
          @Override
          protected void draw(Canvas pC, MapView pOsmv, boolean shadow)
          {
              if (shadow)
                  return;
  
              Paint lp3;
              lp3 = new Paint();
              lp3.setColor(Color.RED);
              lp3.setAntiAlias(true);
              lp3.setStyle(Style.STROKE);
              lp3.setStrokeWidth(1);
              lp3.setTextAlign(Paint.Align.LEFT);
              lp3.setTextSize(12);
              // Calculate the half-world size
              final Rect viewportRect = new Rect();
              final Projection projection = pOsmv.getProjection();
              final int zoomLevel = projection.getZoomLevel();
              int mWorldSize_2 = TileSystem.MapSize(zoomLevel) / 2;
  
              // Save the Mercator coordinates of what is on the screen
              viewportRect.set(projection.getScreenRect());
              // DON'T set offset with either of below
              // viewportRect.offset(-mWorldSize_2, -mWorldSize_2);
              // viewportRect.offset(mWorldSize_2, mWorldSize_2);
  
              // Draw a line from one corner to the other
              pC.drawLine(viewportRect.left, viewportRect.top,
                      viewportRect.right, viewportRect.bottom, lp3);
          }
  
          public void onProviderDisabled(String arg0)
          {
          }
  
          public void onProviderEnabled(String provider)
          {
          }
  
      }
  
  }
  </code></pre>
  
  <p>thats my Manifest:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.test.overlay" android:versionCode="1" android:versionName="1.0"&gt;
      &lt;uses-sdk android:minSdkVersion="3" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
      &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
      &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
  
  
      &lt;application &gt;
          &lt;activity android:name=".OverlayDemo" android:label="@string/app_name"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN" /&gt;
                  &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
  
      &lt;/application&gt;
  &lt;/manifest&gt;
  </code></pre>
  
  <p>Thanks in advance,</p>
  
  <p>ray.</p>