none
thumb 2

    Frage

  • Welche Funktion von thumb kann ich nutzen, um tiles (OSM) nachzuladen.

    Ich erzeuge im Codebehind Image, und lasse nur so viele Img erzeugen wie ich für das Canvasfenster benötige, in diese Img lade ich die Tiles vom OSM Server.

    Wenn ich nun das Thumb "bewege" verschiebe ich die Bilder, wie kann ich in den Freiflächen die entstehen neue Tiles nachladen

    Grüße

    Montag, 11. August 2014 23:27

Alle Antworten

  • Hallo,
    ich habe dir irgendwann mal ein Beispiel mit einer einzelnen, verschiebbaren Ellipse gegeben. Dort habe ich die Ellipse im DragDelta-Evbent des Thumbs verschoben. In diesem EVent musst du nun noch ermitteln, welche Felder nun eigentlich im sichtbaren Bereich liegen.

    Dafür kannst du dir beispielsweise die Referenz auf die Kachel bei 0|0 abspeichern:

    Image img;
    
    void InitTiles(){
      for(...)
        for(...)
          //Neues Image anlegen, falls an Position 0|0, zusätzlich in img abspeichern
    }

    Wenn du nun mit Canvas.GetLeft/GetTop die waren Koordinaten abrufst, weißt du um wie viel die Karte verschoben wurde - der Ausgangswert wäre bei 0|0 schließlich 0 für x und 0 für y.

    Angenommen wie Karte wurde 9 Tiles nach rechts verschoben, der Sichtbare Bereich ist 300 und ein Tile 50 Breit. Der Koordinatenursprung liegt ganz links, somit wäre die Kachel Links -9 (0-Rechtsverschiebung) und die Kachel rechts -3 (0-Rechtsverschiebung+Breite des Sichtbereichs). Für die Y-Koordinaten ist es genauso.

    Nun musst du noch beachten, dass der linke- und der obere Rand jeweils ab- und der rechte- und der untere Rand jeweisl aufgerudet werden. Dadurch werden auch die nur Teilweise sichtbaren Tiles mit Kartenteilen bestückt.

    Wie der eigentliche Download funktioniert weiß ich nicht, da ich mich mit OSM nicht auskenne. Der Anbieter hat aber sicherlich eine API inkl. Beispielen und Dokumentation.


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Dienstag, 12. August 2014 16:04