Delphi-PRAXiS
Seite 29 von 55   « Erste     19272829 303139     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)

Nintendo 2. Sep 2012 14:39

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

Hab grad probiert. Zuerst aus Ordner Basics das Demo, funktioniert leider nicht bei mir. Muss D2006 verwenden, da in D7 Personal der TWebbrowser fehlt.

Map_Projection_Simple und Map_Simple, diese beiden Demos funktionieren bei mir leider nicht. In beiden Demos wird zum Programmstart die Karte einige Sekunden angezeigt, dann gelöscht, eine weiße Fläche wird sichtbar und in der rechten oberen Ecke zwei Buttons [Karte][Satellit]
und am unteren Rand die Links "Kartendaten" und "Nutzungsbedingungen" bei Map_Simple und [Karte][Gall Peters] --- "Nutzungsbedingungen" im Demo Map_Projection_Simple.

Mache ich da was falsch, muss ich noch was vorher installieren?

Thom 2. Sep 2012 22:31

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

Vielen Dank für den Test und die Hinweise!
Ich hatte den Patch nur schnell mit Delphi XE getestet und keinerlei Rücksicht auf andere Versionen genommen. Das werde ich dann bei Gelegenheit noch nachholen.


@Nintendo:

Delphi 2006 habe ich leider nicht - deshalb kann ich das Problem bei mir nicht nachvollziehen. Auf Grund Deiner Beschreibung vermute ich aber ein API-/Internet Explorer-Problem. Das Framework verwendet standardmäßig die neueste (experimentelle) API-Version. Abhilfe sollte die Nutzung der Release-Version bringen:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if Script=nil then
    with TScript.Create(WebBrowser1) do
      LoadAPIAsync(InitMap,DefaultLanguage,DefaultRegion,3.9);
end;
Falls das nicht funktioniert, würde ich Dich bitten, die compilierte Demo an Deinen Beitrag anzuhängen, damit ich sie bei mir testen kann. Welche Windows-/Internet Explorer-Version verwendest Du?

Nintendo 3. Sep 2012 07:33

AW: Google Maps über COM (Component Object Model)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Aaaalso ich verwende Internet Explorer Version 6.0.2800.1106.xpclient.010817-1148. Ok, dann lade ich mal meine Demos hoch. Ich habe FormShow angepasst, aber das Ergebnis ist das gleiche Verhalten, wie vorher auch. Im Internet Explorer habe ich mal probeweise GoogleMaps in meiner aktuellen Version aufgerugen. Dort wird die Landkarte angezeigt.

Thom 3. Sep 2012 14:34

AW: Google Maps über COM (Component Object Model)
 
Wie schon vermutet: Deine Demos laufen bei mir ohne Probleme (XP, IE8). Es liegt also definitiv an Deinem Internet Explorer (siehe Abschnitt "Bekannte Probleme" im oberen Teil).
Das Problem liegt darin, daß das ActiveX-Control immer etwas anders reagiert, als der zugehörige Browser. So läuft zum Beispiel der IE8 in Anwendungen standardmäßig als IE7. Für den IE8, IE9 und IE10 gibt es über die Registry Möglichkeiten, ein bestimmtes Verhalten zu erzwingen. Für den IE6 sind mir derartige Einstellungsmöglichkeiten leider nicht bekannt.
Ich kann Dir also nur empfehlen (schon aus Sicherheitsgründen), eine aktuellere IE-Version zu installieren. Selbst wenn Du den IE nicht verwendest und nur mit anderen Browsern im Internet unterwegs bist: Für Desktopprogramme, die das IE-Control verwenden, ist das notwendig.

Nintendo 3. Sep 2012 17:21

AW: Google Maps über COM (Component Object Model)
 
Ok, Danke, hab gleich mal aufm Laptop, meinem Zweitrechner mit IE8 getestet und tatsächlich, da klappt es. So muss ich wohl auf meinem Desktoprechner auf IE8 updaten.

GPRSNerd 22. Okt 2012 10:46

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

hat jemand ne Idee, wie ich einen Mausklick auf eine Polyline abfangen kann? Einen OnClick-Event gibt es hier nicht, allerdings eine Property "clickable", die aber funktionslos zu sein scheint.
Schön wäre es, auch den Abschnitt der Polyline ermitteln zu können, auf den geklickt wurde.

Grüße,
Stefan

Thom 22. Okt 2012 13:01

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

das OnClick-Ereignis gibt es auch bei Polyline-Objekten. Als Parameter wird ein TMouseEvent-Objekt übergeben, das die LatLng-Koordinaten des Cursors enthält. Befindet sich das Polyline-Objekt im editierbaren Zustand, enthält das TMouseEvent-Objekt zusätzlich einige weitere Eigenschaften (siehe Dokumentation). Der Abschnitt der Linie, auf den geklickt wurde, muß ansonsten selbst berechnet werden.

GPRSNerd 22. Okt 2012 19:17

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

danke für die prompte Hilfe, funktioniert jetzt einwandfrei.
Manchmal sieht man den Wald vor lauter Bäumen nicht, ich hatte versehentlich versucht, ein OnClick-Event einer TPolylineOptions-Instanz zuzuweisen, anstatt TPolyline.
Es ist erstaunlich auf wievielen Wegen man in der Google-API sein Ziel erreichen kann...

Gruß,
Stefan

Thom 24. Okt 2012 20:03

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

schön, daß es funktioniert! Ja, so etwas kann passieren.

Generell kann man sagen, daß ein Options-Objekt nur dafür gedacht ist, Eigenschaften im Sinne von Properties für das neu anzulegende Objekt zu liefern. Alles, was mit Methoden zu tun hat - und dazu gehören auch die Event-Handler -, wird dem eigentlichen Objekt zugewiesen beziehungsweise bei ihm aufgerufen. Deshalb funktionieren die Konstruktor-Methoden in der Regel auch ohne Options-Objekt.

Anders verhält es sich bei Service-Aufrufen: Hier muß (!) ein Options-Objekt übergeben werden, das einen Verweis auf die entsprechende Callback-Methode enthält, ohne der der Aufruf des Services sinnlos wäre.

Zitat:

Zitat von GPRSNerd (Beitrag 1187941)
Es ist erstaunlich auf wievielen Wegen man in der Google-API sein Ziel erreichen kann...

:thumb:

GPRSNerd 24. Okt 2012 21:42

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

es macht richtig Spass mit deiner Google Maps-Implementierung zu arbeiten, ich konnte bisher alles so umsetzen, wie ich es mir gewünscht habe, was mit anderen Komponenten nicht oder nur sehr kompliziert und wenig intuitiv geht. :thumb:

Momentan würde ich gerne einen GPS-Track (aufgenommen mittels fusionierten Daten von Sensoren wie GPS-Receiver, Trägheitsnavi, Tachoticks etc) farblich anhand der Geschwindigkeitsdaten für jeden Polyline-Abschnitt kodieren. Die Internet/Google-Intelligenz zeigte bisher keine wirklich elegante Methode dafür. Vorschläge waren generell ala "für jeden Abschnitt eine eigene Polyline zeichnen, die dann eine eigene Farbe kodiern kann, was bei mehreren 10000 Abschnitten nicht wirklich praktikabel und performant ist.
Oder hast du eine zündende Idee? :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Seite 29 von 55   « Erste     19272829 303139     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