Heyho,
ich hab eine 2d Landkarte als Bitmap und würde diese gerne in einer 3d Ansicht darstellen. Das Ziel ist ein Look and Feel wie bei Google Earth d. h. die Kamera fliegt über eine 2d Map im 45° Winkel. Wie könnte man das am besten für ASP.NET 2 realisieren?
Hallo,
dauzu musst Du die Karte dann entsprechend verzerren.
Da quasi für jede Orts - und Richtungsänderung das Bild neu aufgebaut werden muss, ist ASP.NET hier wohl die falsche Wahl, da jedes neue Bild erst vom Server erstellt und dann vom Client geladen werden muss.
Wenn Du das als Webanwendung willst, müsstest Du Dir eher Flash oder Silverlight anschauen, da könntest Du das Bild (Map) auch clientseitig bearbeiten - mit diesen beiden Technologien kenne ich mich aber zuwenig aus um hier weiterzuhelfen.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hi,
die Übertragung des Kartenmaterials ist eigentlich nicht das Problem. Je nach Bedarf können die Rohdaten auf dem Server oder Client in Bilder umgewandelt werden. Nur stellt sich für mich die Frage wie man mit einer freien Kamera auf ein 2d Bild blicken und sich darin bewegen kann. Flash wäre auch eine Alternative, bei Silverlight weiß ich nicht ob es unter Mono läuft.
Hallo,
Je nach Bedarf können die Rohdaten auf dem Server oder Client in Bilder umgewandelt werden
Wohl eher nicht, was den Client angeht. ASP.NET erzeugt ja nur Webseiten, und Bilder sind darin <img>-Tags. Die Bilddaten können clientseitig (im Browser) nicht einfach verändert werden.
Die Daten für jede "Kameraeinstellung" auf dem Server zu einem Bild rendern zu lassen, dauert aber viel zu lange -> eine fölüssige Bewegung halte ich dann für nicht realisierbar.
Die Bilder müssen also clientseitig bearbeitet/erzeugt werden, und das eben geht nicht mit reinem ASP.NET, daher der Verweis auf Flash bzw. Silverlight.
Unter Mono gibt es Silverlight übrigens als "Moonlight", ich weiß aber nicht in welchem Stadium es sich befindet bzw. ob es schon produktiv einsetzbar ist.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Rein technisch gesehen ist es einfach eine Verzerrung des Bildmaterials, das die Karte beinhaltet. Du mußt dir das so vorstellen, daß man auf eine Ebene aus einem bestimmten Winkel draufschaut, und dabei eine bestimmte Perspektivische Verzerrung hat (also am Horizont mehr Fläche sieht als direkt vor der Kamera).
Das bekommt man z.B. mit Matrizen hin, also einer TransformationsMatrix (für die Kameraposition) und einer ViewMatrix (für die perspektivische Darstellung). Schau mal im Internet nach TransformationsMatrix oder ViewMatrix. Wenn du mit Flash entwickeln willst, gibt es "3D-Engines" wie Sandy3D oder Away3D, da sind solche Sachen schon implementiert.
Christian
Weeks of programming can save you hours of planning
Wenn Du das als Webanwendung willst, müsstest Du Dir eher Flash oder Silverlight anschauen, da könntest Du das Bild (Map) auch clientseitig bearbeiten - mit diesen beiden Technologien kenne ich mich aber zuwenig aus um hier weiterzuhelfen.
Stimmt nicht mehr ganz, vielleicht findet ihr hier noch ein paar Ergänzungen /Anregungen, das ganze AJAX-mässig zu realisieren / (zoomen etc.)
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Hallo schaedld,
das ist eine interessante Seite - da wird offenbar das Bild in Einzelteile zerlegt, und diese bei Bedarf auch wiederverwendet: gefällt mir sehr gut.
Ich möchte aber nicht wissen, wie das bei 'ner langsamen Modemverbindung aussieht 😉
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
@MarsStein
Ich bin mal drauf gestossen, als ich mit dem DeepZoomComposer rumgespielt und gesehen habe, dass man auch ein Seadragon Bild generieren kann.
Ich möchte aber nicht wissen, wie das bei 'ner langsamen Modemverbindung aussieht 😉
Dachte in DE sei 10MBit/s schon fast Standard 😃
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt