Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#249

AW: Google Maps über COM (Component Object Model)

  Alt 3. Jul 2012, 14:21
Hallo Greg,

vielen Dank für Dein Interesse und das Lob!

Bitte entschuldige, daß ich Dich so lange habe warten lassen. Das liegt daran, daß ich momenentan mehr Arbeit habe, als Zeit zur Verfügung steht. Dadurch sind leider etliche Anfragen länger liegen geblieben, als es höflich ist.

Zu Deiner Frage: Selbstverständlich kannst Du den Quelltext zur Ansteuerung des OpenLayer-Players haben. Allerdings muß ich Dich vorwarnen: Die Umsetzung ist absolut unvollständig und paßt wahrscheinlich nicht mehr zur aktuellen Frameworkversion.

Das Framework selbst ist in zwei Teile gegliedert:

Der erste Teil - der Kern - besteht aus einer DelphiToJavaScript-Bridge (D2JS-Engine), die ausschließlich über COM-Interfaces mit der JScript-Engine des IE-ActiveX kommuniziert. Damit kann auf beliebige JavaScript-Funktionen und -Objekte zugegriffen werden. Das geschieht in Form von Wrapper-Objekten, die über vorhandene JavaScript-Objekte gelegt werden oder die selbst neue JavaScript-Objekte erstellen.

Darauf baut der zweite Teil des Frameworks auf, der damit alle Objekte und Methoden des Google Maps API's zugänglich macht.

Genauso kann man das natürlich mit allen anderen JavaScript-Frameworks machen - es ist nur eine Frage des Aufwandes, den man treiben möchte. Darauf basieren dann auch die Anfänge der Umsetzung des OpenLayer-Players. Ich hatte das allerdings nur zum Testen geschrieben und hatte nicht geplant, es in dieser Form weiterzuentwickeln. Insofern ist es nur eine Studie nach dem Motto "So könnte man das auch machen...".

Zu den Gründen, weshalb ich den OpenLayers-Player nicht auf die Art in Delphi einbinden möchte:
JavaScript in Verbindung mit einem Browser(-Plugin) kommt von der Geschwindigkeit her nicht annähernd an ein kompiliertes Programm heran. Tests haben gezeigt, daß ein in Delphi geschriebener Player zur Darstellung von Kartendaten ohne Probleme um den Faktor 10 schneller ist, als eine Kombination aus Browser und JavaScript. Selbst auf einem gemächlichen Netbook sind ruckelfreie Animationen (wie das Verschieben der Karte oder die Veränderung des Zoomfaktors) möglich.
Deshalb investiere ich lieber die Zeit in einen nativen Delphi-Player. Für das Datenmaterial des Open StreetMap-Projektes ist das möglich - Google besteht in seinen Lizenzbedingungen (momentan) aber leider auf den ausschließlichen Zugriff über das JavaScript-API.

Du kannst den Ansatz des OpenLayers-Players aber gern weiterentwickeln. Um das Ganze dann auch mit der D2JS-Engine der neuen Version des Frameworks kompatibel zu machen, sind allerdings einige Anpassungen notwendig, da die Version 3.0 auch Delphi-seitig Interfaces unterstützen wird. Bei Fragen würde ich Dir selbstverständlich helfen.

Den Quelltext der Demo mit dem OpenLayers-Player schicke ich Dir per Email.

Viele Grüße
Thomas
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom ( 3. Jul 2012 um 14:23 Uhr)
  Mit Zitat antworten Zitat