2012-08-14 7 views
13

Wer weiß von einer Bibliothek für die Integration von OpenStreetMap in Android? Ich versuche es mit OSMDROID und MapsForge, nicht mehr? Es ist neugierig, aber ich finde nur freie Bibliotheken.OpenStreetMap in Android

Antwort

3

Die drei beliebtesten Bibliothek für die Verwendung von OSM in Android sind Osmdroid, Graphhopper und Mapsforge.

0

Abhängigkeiten {

Kompilierung 'org.osmdroid: osmdroid-android: [email protected]'

}

for (int k = 0; k < mBeanList.size(); k ++) {

     mMyMarkersArray.add(new 

MyMarkers (mBeanList.get (k) .getSpecies(),

       mBeanList.get(k).getArea(), mBeanList.get(k).getTaxon(), 
           Double.parseDouble(mBeanList.get(k).getLatitude()), 
           Double.parseDouble(mBeanList.get(k).getLongitude()), 

           mBeanList.get(k).getDate(), mBeanList.get(k).getTime())); 



         org.osmdroid.views.overlay.Marker osmMarker = new org.osmdroid.views.overlay.Marker(mOpenStreetMapView); 
         Drawable newMarker = ContextCompat.getDrawable(OpenStreetMapActivity.this, R.mipmap.ic_map_72); 
         GeoPoint startPoint = new GeoPoint(Double.parseDouble(mBeanList.get(k).getLatitude()), Double.parseDouble(mBeanList.get(k).getLongitude())); 
         osmMarker.setIcon(newMarker); 
         osmMarker.setPosition(startPoint); 
         osmMarker.setAnchor(org.osmdroid.views.overlay.Marker.ANCHOR_CENTER, org.osmdroid.views.overlay.Marker.ANCHOR_BOTTOM); 

         mOpenStreetMapView.getOverlays().add(osmMarker); 
         mOpenStreetMapView.invalidate(); 
         mOpenStreetMapView.setMinZoomLevel(2); 
         IMapController mapController = mOpenStreetMapView.getController(); 
         GeoPoint geoIndia = new GeoPoint(20.593684, 78.962880); 
         mapController.setZoom(3); 
         mapController.setCenter(geoIndia); 

         osmMarker.setInfoWindow(new CustomMarkerInfoWindow(mOpenStreetMapView, k)); 

        } 

private Klasse CustomMarkerInfoWindow erstreckt Infowindow { int position;

LinearLayout linearLayout; 

    //Constructor 
    public CustomMarkerInfoWindow(MapView mOpenStreetMapView, int pos) { 
     super(R.layout.bonuspack_bubble_black, mOpenStreetMapView); 

     linearLayout = (LinearLayout) mView.findViewById(R.id.linear_lay_out_bonuspack_bubble); 
     //linearLayout.setVisibility(View.GONE); 
     //mOpenStreetMapView.getOverlays().clear(); 
     this.position = pos; 
    } 

    @Override 
    public void onOpen(Object item) { 
     //super.onOpen(item); 
     linearLayout.setVisibility(View.VISIBLE); 
     TextView species = (TextView) mView.findViewById(R.id.bonuspack_bubble_text_view_species_name); 
     species.setText(mBeanList.get(position).getSpecies()); 
     TextView area = (TextView) mView.findViewById(R.id.bonuspack_bubble_text_view_address); 
     area.setText(mBeanList.get(position).getArea()); 
     TextView taxon = (TextView) mView.findViewById(R.id.bonuspack_bubble_text_view_taxon); 
     taxon.setText(mBeanList.get(position).getTaxon()); 
     TextView dateTime = (TextView) mView.findViewById(R.id.bonuspack_bubble_text_view_date_time); 
     dateTime.setText(mBeanList.get(position).getDate()); 

     linearLayout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       linearLayout.setVisibility(View.GONE); 
      } 
     }); 
    } 

    @Override 
    public void onClose() { 
     //super.onClose(); 
     //linearLayout.setVisibility(View.GONE); 
    } 

} 
Verwandte Themen