2012-04-12 11 views
1

Im Grunde genommen, was ich versuche, ist ein Map Viewer als Bildbetrachter mit der gleichen Art von effizienten Kachel-Lade-, Zoom/Pan Awesomeness ohne zu bauen es selbst.OpenLayers als große (sich verändernde und wachsende) Bildbetrachter

Insbesondere brauche ich einen Bildbetrachter, der es dem Bild erlaubt, zu wachsen und sich zu verändern, ohne die Koordinaten älterer (unveränderter) Kacheln zu verändern. Dies bedeutet, dass der Mittelpunkt (0,0), an dem das Bild anfängt zu wachsen, immer (0,0) bleiben muss. Ich suche also nach einer Bibliothek, die mir erlaubt, ein sehr einfaches kartesisches Koordinatensystem (keine Kartenprojektion!) Zu verwenden, das nach Kacheln unendlich in allen Richtungen ohne Wiederholung fragt (im Gegensatz zu den Kartenbibliotheken, die einfach y- ignorieren). Achse über und unter der Karte, aber die x-Achse wiederholt).

Es gibt noch einen Haken. Ich brauche Zoom-Level 0, um gezoomt zu werden in den ganzen Weg. Da das Bild ständig wächst, gibt es keine Möglichkeit, die maximale Zoomstufe zu bestimmen. Die Koordinaten müssen auf den Kacheln der Basisbildschicht basieren, so dass jede Kachel in der Zoomstufe z 2 Kacheln der Basisschicht enthält.

Ich frage mich, ob dies mit OpenLayers möglich ist und wie es geht. Wenn dies nicht der Fall ist, wären Vorschläge von anderen (Open-Source-Javascript) -Bibliotheken, die dies tun können, sehr willkommen! Ich habe versucht, mit Polymaps herumzuspielen, aber die Dokumentation fehlt mir zu viel, um sagen zu können, ob es funktionieren wird. Bis jetzt kein Glück.

Bitte lassen Sie mich wissen, wenn nichts davon Sinn ergibt, und ich werde versuchen, ein paar Bilder oder bessere Erklärungen aufzunehmen. Vielen Dank!

Antwort

1

Ich habe schließlich Polymaps verwendet, da ich es mehr als OpenLayers mag, weil es schneller ist und viel glatter Scrollen und Panning hat. Ich konnte nicht genau das machen, was ich wollte, aber was ich tat, war nah genug.

Ich schrieb meine eigene Schicht (basierend auf der Schicht po.image()), die unendliche horizontale Schleife der Karte deaktiviert. Ich habe dann meine eigene Version von po.url() geschrieben, die die Anfragen an den Server für Kacheln geändert hat, so dass das Zoomen umgekehrt wurde (ich habe einfach willkürlich einen 'maximalen' Zoom von 20 gewählt, dann wenn eine Anfrage gemacht wurde, subtrahiere den Zoomlevel von 20) und die x- und y-Koordinaten wurden in kartesische Koordinaten aus der Standardzeile, Spaltenkoordinaten, die Polymaps verwendet, basierend auf der Zoomstufe und der Karte um (0,0) zentriert.

Wenn jemand an dem Code interessiert ist, kann ich es hier posten. Gib mir Bescheid!

EDIT: Ich habe den Code auf GitHub veröffentlicht am https://github.com/camupod/polymaps

Die entsprechenden Dateien sind src/Rückwärts * und Beispiele/rückwärts (obwohl es eigentlich nicht funktionieren sollte, können Sie in der Lage sein, einige Informationen zu reinigen über wie es sollte arbeiten).

+1

Ich bin sehr an Ihrem Code interessiert, könnten Sie ihn noch posten? – dm03514

+0

@ dm03514 Ich habe meinen Code auf GitHub veröffentlicht. Sorry wegen des Mangels an Dokumentation, aber ich habe keine Zeit durchzuarbeiten und alles wieder in Gang zu bringen. – lakenen

0

Vielleicht möchten Sie die überprüfen, könnte es Ihnen helfen, eine Lösung zu finden.

Bitte melden Sie sich zurück, wenn Sie Fortschritte machen, es sieht sehr interessant aus!

+0

Danke, ich habe mir das vorher angesehen, aber es ist nicht ganz das, was ich brauche. – lakenen