Would you mind forking the monodroid-samples repository, adding your sample, 
and submitting a pull request? :-)

        http://github.com/xamarin/monodroid-samples

Thanks,
 - Jon

On Sep 6, 2012, at 10:04 AM, Jeremy A. Kolb - ARA/NED <[email protected]> wrote:

> I’m posting this here because I don’t know where else to post it.  It may 
> prove useful to someone.  I had a hard time figuring out what to place in 
> Metadata.xml because the documentation isn’t the greatest.  There may be a 
> better way to do this.  There are also a bunch of cleanups that could be 
> performed (ie changing getX() to a property get but I couldn’t figure out how 
> to do that).
>  
> 1.       Setup your project as specified in 
> http://docs.xamarin.com/android/tutorials/Binding_a_Java_Library_%28.jar%29 
> (I called it OsmDroid)
> 2.       Add the following Jars:
> a.       osmdroid-android-3.0.8 as the input jar
> b.      httpmime-4.2.1 as reference jar
> c.       osmdroid-third-party-3.0.8 as reference jar
> d.      slf4j-android-1.5.8 as reference jar
> 3.       In EnumMethods.xml you will want the following:
>  
>   <mapping jni-interface="org/osmdroid/api/IMapView">
>     <method jni-name="setBackgroundColor" parameter="p0" 
> clr-enum-type="Android.Graphics.Color" />
>   </mapping>
>  
>   <mapping jni-interface="org/osmdroid/api/IMyLocationOverlay">
>     <method jni-name="onStatusChanged" parameter="p1" 
> clr-enum-type="Android.Locations.Availability" />
>   </mapping>
>  
> 4.       Metadata.xml:
>  
>   <attr 
> path="/api/package[@name='org.osmdroid.tileprovider.modules']/class[@name='MapTileModuleProviderBase.TileLoader']"
>  name="visibility">
>     public
>   </attr>
>   <attr 
> path="/api/package[@name='org.osmdroid.tileprovider.modules']/class[@name='MapTileModuleProviderBase.TileLoader']/method[@name='loadTile']"
>  name="visibility">
>     public
>   </attr>
>  
>   <attr 
> path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ScaleTileLooper']/method[@name='handleTile']"
>  name="visibility">
>     public
>   </attr>
>   <attr 
> path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ZoomInTileLooper']/method[@name='handleTile']"
>  name="visibility">
>     public
>   </attr>
>   <attr 
> path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ZoomOutTileLooper']/method[@name='handleTile']"
>  name="visibility">
>     public
>   </attr>
>  
>  
>   <!-- Draw() seems to be public for android so we need to be consistent 
> about it.  C# doesn't like to mix visibility during inheritance. -->
>   <attr 
> path="/api/package[@name='org.osmdroid.views.overlay']/class[@name='Overlay']/method[@name='draw']"
>  name="visibility">
>     public
>   </attr>
>   <attr 
> path="/api/package[@name='org.osmdroid.views.overlay']/class[@name='TilesOverlay']/method[@name='draw']"
>  name="visibility">
>     public
>   </attr>
>   <attr 
> path="/api/package[@name='org.osmdroid.views.overlay']/class[@name='PathOverlay']/method[@name='draw']"
>  name="visibility">
>     public
>   </attr>
>  
>   <remove-node 
> path="/api/package[@name='org.osmdroid.tileprovider.tilesource']/class[@name='CloudmadeTileSource']"
>  />
>  
>   <!-- Return IMapController in MapView.Controller so that we match IMapView. 
> -->
>   <attr 
> path="/api/package[@name='org.osmdroid.views']/class[@name='MapView']/method[@name='getController']"
>  name="managedReturn">
>     Org.Osmdroid.Api.IMapController
>   </attr>
>  
>   <!-- We need to rename class MapView.Projection because it conflicts with a 
> property of the same name -->
>   <attr 
> path="/api/package[@name='org.osmdroid.views']/class[@name='MapView.Projection']"
>  name="managedName">
>     MapView.ProjectionImpl
>   </attr>
>  
>   <!-- Change return type to match IMapView.Projection property return type 
> -->
>   <attr 
> path="/api/package[@name='org.osmdroid.views']/class[@name='MapView']/method[@name='getProjection']"
>  name="managedReturn">
>     Org.Osmdroid.Api.IProjection
>   </attr>
>  
>  
> This should get you building and you can reference the OsmDroid project in 
> your application (you don’t need to use a MapActivity, a regular one works 
> just fine) and it will work.
>  
> Jeremy
> _______________________________________________
> Monodroid mailing list
> [email protected]
> 
> UNSUBSCRIBE INFORMATION:
> http://lists.ximian.com/mailman/listinfo/monodroid

_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to