Delphi-PRAXiS
Seite 25 von 55   « Erste     15232425 262735     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Google Maps über COM (Component Object Model) (https://www.delphipraxis.net/157004-google-maps-ueber-com-component-object-model.html)

DelphiFan2008 25. Apr 2012 22:43

AW: Google Maps über COM (Component Object Model)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi Thom,

Zitat:

Deshalb kann ich Dir nur empfehlen, ein eigenes TDirektionsRenderer-Objekt zu programmieren. Alles was dazu notwendig ist (TMarker, TPolyline, TDirectionsResult), ist vorhanden.
Für die Umsetzung eines eigenes TDirektionsRenderer-Objekt sehe ich keinen Ansatz. Verwendung TMarker, TPolyline o.k., habe ich in vielfältiger Weise in meiner App. Die Verknüpfung mit TDirectionsResult stellt mich vor ein Rätsel. Kannst du in kurzen Worten deine Idee zum "Ansatz" erklären?

Meinst du BikeRouteToaster oder GPSies macht dies in ähnlicher Weise, siehe JPG? Bin leider nicht in der Lage über den Browser/Quelltext den JavaScript Code zu verstehen :cry:

Gruß DelphiFan2008

hewy 4. Mai 2012 12:37

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

{Nachtrag: Alles klar konnte es selbst lösen. in dem ich den GeoCoder in ruhe lasse. Danke }

Das Framwork liegt schon länger auf meiner ToDo Liste, nun ist es endlich soweit.
Hab eine kleine Applikation erstellt in welche ich Lat/Long eingeben und mir dann einen Marker an die Eingegebene Position setzt.
Nun scheint es so dass eine Optimierung vorgenommen wird bevor der Marker an die Position gelangt.
Daher meine Frage: wie setze ich einen Marker an genau die Koordinaten welche eingegeben werden?

Die folgenden Koordinaten hatte ich zum Testen verwendet: Diese sollte nach meiner Auffassung eine geradelinie ergeben.
Dem ist aber nicht so.

47.47356 8.4646488
47.47686 8.4679488
47.48021 8.4712988
47.48361 8.4746988
47.48706 8.4781488
47.49056 8.4816488
47.49411 8.4851988
47.49771 8.4887988
47.50136 8.4924488
47.50506 8.4961488
47.50881 8.4998988
47.51261 8.5036988
47.51646 8.5075488
47.52036 8.5114488
47.52431 8.5153988
47.52831 8.5193988

Besten Dank und Gruss
Heinrich^

Thom 4. Mai 2012 16:36

AW: Google Maps über COM (Component Object Model)
 
Liste der Anhänge anzeigen (Anzahl: 1)
@DelphiFan2008:

Entschuldige bitte die späte Antwort.
Ja - es sieht wirklich so aus, als ob die beiden von Dir genannten Beispiele die Route mit eigenen Mitteln anzeigen und nicht das DirectionsRenderer-Objekt aus dem API benutzen. Will man etwas mehr Einflußmöglichkeiten (wie zum Beispiel Kontextmenüs oder Ereignishandler für die einzelnen Wegpunkte), ist das DirectionsRenderer-Objekt leider völlig ungeeignet, da es nach dem Black-Box-Prinzip so gut wie alle Funktionen kapselt und nur sehr geringe Einflußmöglichkeiten durch den Programmierer zuläßt.

Momentan habe ich leider keine Zeit, ein alternatives Objekt zu entwickeln, da ich mit Hochdruck an der Fertigstellung der Version 3 des Frameworks arbeite. Das ist aber auf der ToDo-Liste vermerkt.


@Heinrich:

Die Marker befinden sich doch auf einer Linie!? :gruebel:
Anhang 36850
Falls das bei Dir nicht der Fall sein sollte, wäre es schön, wenn Du mal den Quelltext und/oder einen Screenshot zeigen würdest.

Edit: Alles klar - ich hatte Deinen Nachtrag zu spät gelesen...

alibaba 11. Mai 2012 19:44

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

Erst mal großes Lob und Danke für das Framework,
beschäftige mich erst ein paar Tage damit aber läuft toll !

Habe hier Delphi 6 auf XP mit IE 8, wobei aber anscheinend der IE8 die
Krücke ist, delphichromiumembedded läuft auch mit Delphi 6 wie ne 1.

Hat jemand einen Tip für mich wie ich das Framework mit delphichromiumembedded zum laufen
bekommen könnte der Geschwindigkeitsunterschied würde mich interessieren ?

lg
Albert

Thom 11. Mai 2012 20:26

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

vielen Dank für das Lob!

Inwiefern gibt es Probleme mit dem Internet Explorer ActiveX?
Auf meinem Entwicklungsrechner arbeite ich ohne Probleme mit XP und dem IE8. Auch auf einem Netbook läuft Google Maps mit akzeptabler Geschwindigkeit. Allerdings habe ich auch feststellen müssen, daß mit jeder neuen Version das API etwas zäher wird - das liegt einfach auch am ständig zunehmenden Funktionsumfang. Außerdem sitzen die Jungs/Mädchen von Google wahrscheinlich an schnelleren Kisten... Und JavaScript bleibt nun mal JavaScript.

Um auf Deine Frage zu antworten: Das Framework arbeitet ausschließlich mit dem IE. Sollen andere Browser unterstützt werden, ist der Zugriff über COM nicht geeignet und Du müßtest andere Komponenten benutzen. Die wichtigsten mir bekannten sind im ersten Beitrag aufgelistet. TECMap unterstützt Chromium Embedded. Auf Anfrage schickt Dir der Entwickler auch gern eine Demo-Komponente zu. Damit könntest Du dann einen Vergleich zwischen den Browsern machen.

Möchtest Du einen Geschwindigkeitsvergleich beim IE zwischen der von allen Komponentenentwicklern genutzen Exec-Methode zur Ausführung von JavaScript und dem direkten Zugriff über COM, so ist die von diesem Framework verwendete Methode etwa doppelt so schnell. Das liegt daran, daß das Parsen und Ausführen des JavaScript-Codes entfällt.

fduenas 19. Mai 2012 18:40

AW: Google Maps über COM (Component Object Model)
 
Thomas:
Are planning some day to port your component to be uses to intraweb or annother web solution for delphi?

Thom 19. Mai 2012 20:05

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

IntraWeb: Probably not. The documentation of IntraWeb is unfortunately very bad. And buy source code for the development of a freeware component is currently too expensive to me.

Other web solutions: At which do you think?

Currently I am working on version 3 of the framework. Then I will proceed with the development of a solution without Internet Explorer or another browser components. So may be a cross-platform application would be possible.

gregshrek 29. Jun 2012 10:36

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

Zitat von Thom (Beitrag 1084599)
Nach den positiven Worten über den OpenLayers-Player hatte ich ihn mir in den letzten Tagen angeschaut und mir einen ersten Überblick verschafft:

...

Da der Quelltext des Beispiels momentan nicht compilierbar ist (ich habe einige Erweiterungen an den Units des Frameworks vorgenommen), hänge ich einfach die fertige Demo an.

Hallo Thom

Ich bin sehr an dem Quellcode interessiert. Würdest du ihn mir zur Verfügung stellen?


Gruss Greg

Thom 3. Jul 2012 13:21

AW: Google Maps über COM (Component Object Model)
 
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

Borni 16. Jul 2012 12:30

AW: Google Maps über COM (Component Object Model)
 
Erstmal eine RIESENLOB, feine Arbeit, das gehört belohnt *Spende ist unterwegs*

und gleich die erste Frage:

Wie kann man auf einen Link im InfoFenster eines Markers, intern vom Programm reagieren, habe (noch) nichts gefunden.

Gruß Borni


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr.
Seite 25 von 55   « Erste     15232425 262735     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz