1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. dsTny, 23.03.2013 #1
    dsTny

    dsTny Threadstarter Erfahrener Benutzer

    Hallo an alle :)

    Ich brauche mal eure Hilfe für eine App, die unsere Gruppe im Studium entwickelt. Es geht darum, dass eine Karte mittels osmdroid angezeigt wird (also auf OSM basiert).

    Wenn ich richtig informiert bin, gibt es in OSM die Möglichkeit, sich nur bestimmte "Ebenen" (zum Beispiel Wälder, Straßen, usw.) zu holen und nicht immer alles in einer Karte anzeigen zu lassen.
    Geht das mit osmdroid und wenn ja, wie? Wenn es mit osmdroid nicht funktioniert, geht das mit einer anderen API (die jedoch das Kartenmaterial von OSM haben muss)?

    Ich hoffe, die Problematik ist soweit verständlich.


    Danke im Voraus für alle hilfreichen Antworten :)
     
  2. dsTny, 28.03.2013 #2
    dsTny

    dsTny Threadstarter Erfahrener Benutzer

    Hallo nochmals,

    hmmm warum antwortet keiner? :( Falls ich mein Problem nicht deutlich gemacht habe, versuche ich es ausführlicher:
    Wir benutzen momentan OSMDroid (das wäre aber auch änderbar, falls eine andere API, die aber OSM als Kartenmaterial benutzen sollte, das Problem löst). Nun benutzen wir des Weiteren den OverlayManager, um verschiedene Icons (Ressourcen wie z.B. Holz, Steine, ...) auf einer Map anzuzeigen (siehe Bild im Anhang). Wohin (long/lat) welche Icons gesetzt werden, ist momentan im Backend hardcoded abgespeichert.
    Dies soll ich aber nun ändern. Das Setzen soll automatisiert passieren. Dabei kommen mir zwei Möglichkeiten in den Sinn:

    Möglichkeit 1: Ich benutze die momentane OSM-Karte als "Unterlage", füge aber noch Abfragen für OSM für diverse Layer ein. Mit Abfragen meine ich sowas wie: "Gib mir alle Wälder" (ich bekomme ein Layer, wo die Wälder mit long/lat Koordinaten eingetragen sind), "Gib mir alle Flüsse", usw. Da sowieso automatisch beim Verändern der Location das Kartenmaterial heruntergeladen wird (also nur das Kartenmaterial, welches ich im Screen sehe), sollte diese Möglichkeit nicht viel Overhead produzieren.

    Möglichkeit 2: Ich bekomme lediglich eine Karte mit allen Layern zurück, die ich durch iteriere. Wenn ich einen Layer habe, den ich gebrauchen kann (z.B. Wald), dann tue ich damit was.

    Ich muss nun halt bestimmte Ressourcen automatisiert setzen können. Das soll der Realität folgen, das heißt, nur da wo auch ein Wald ist, kann ich z.B. die Holz-Ressourcen setzen.
    Kann mir für dieses Problem jemand Hilfestellung geben - am besten mit Beispielcode? Wir beziehen das OSM-Material online und wie gesagt momentan über die OSMDroid API. Jedoch finde ich mit dieser API keine Möglichkeit, mein Problem zu lösen.

    Ach ja, ein Ausschnitt des momentanen Quellcodes zur Anzeigen des Map-Layers:
    Code:
    myOpenMapView = (MapView) findViewById(R.id.openmapview);
    myOpenMapView.setBuiltInZoomControls(true);
    myOpenMapView.setMultiTouchControls(true);
    myMapController = myOpenMapView.getController();
    myMapController.setZoom(20);
    myMapController.setCenter(new GeoPoint(52.457079, 13.531559));
    		
    // Add MyLocationOverlay
    myLocationOverlay = new MyLocationOverlay(this, myOpenMapView) {
    	@Override
    	public void onLocationChanged(Location a) {
    		super.onLocationChanged(a);
    		}
    	};
    
    	myOpenMapView.getOverlays().add(myLocationOverlay);
    

    Danke :)
     

    Anhänge:

    • App.png
      App.png
      Dateigröße:
      54.6 KB
      Aufrufe:
      134
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Fehler beim Download bestimmter Webseiten mit httpGet Android App Entwicklung 19.04.2018
PDF in App Anzeigen Android App Entwicklung 24.01.2018
[OFFEN] Aktuellen Standort auf Google Maps anzeigen Android App Entwicklung 23.10.2017

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. osmdroid was ist das

Du betrachtest das Thema "osmdroid nur bestimmte "Ebenen" anzeigen?" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.