Delphi-PRAXiS
Seite 14 von 55   « Erste     4121314 151624     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)

Thom 26. Sep 2011 19:57

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

I hope in one or two weeks.
Sorry, I've read your question until today. :pale:

fduenas 27. Sep 2011 00:48

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

Zitat von Thom (Beitrag 1126810)
Hi Francisco,

I hope in one or two weeks.
Sorry, I've read your question until today. :pale:

LOL, No problem, At my GMT time it still today :).
Regards and hope to see your framework soon

markusr 27. Sep 2011 22:57

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

i will look at the demo. Much appreciated.

I am still trying to do proof of concept.

Demo 5 is causing me issues. If I do each address one at a time, no issue.

if I try to do all of them I get failures.

I am attaching my version on unit1 from Demos\5 - Async Callbacks.

Markus

Can we use email? mrissmann@driftingsands.com or mrissmann@yahoo.com.

Zitat:

Zitat von Thom (Beitrag 1126115)
Hey Markus,

here is a little demo with the framework version 2.
Is this what you mean with multiple destinations?

Anhang 35241

Diese Demo zeigt übrigens auch die Behandlung der Refresh-Taste F5.


Thom 2. Okt 2011 11:37

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

I hope that the mail has arrived.

Für alle anderen die Erklärung des Problems:
Google limitiert die Anzahl der Geocoding-Anfrage. Nach etwas 13 bis 15 Abfragen senden die Server die Meldung
Code:
OVER_QUERY_LIMIT
Anhang 35296
und es wird für die Callback-Funktion kein Results-Objekt erzeugt. Dummerweise wird in der Unit gmGeocoder in der Methode TGeocoder.Callback dieser Umstand nicht getestet und es kommt im Debug-Modus zu einer Fehlermeldung (keine Exception, da diese unterdrückt werden, weil bei COM keine Exceptions nach außen dringen dürfen). Das heißt: Im Fehlerfall wird das eigene Programm gar nicht darüber informiert. Ganz ungeduldige können das Problem selbst beheben, indem sie die Methode TGeocoder.Callback ändern:
Delphi-Quellcode:
procedure TGeocoder.Callback;
begin
  if assigned(FCallback) then
  begin
    try
      if not VarIsNull(FCallbackFunction.Arguments[0]) then //<- to prevent exception (insert unit Variants in uses list)
      begin
        if assigned(FGeocoderResults)
          then FGeocoderResults.Disp:=FCallbackFunction.Arguments[0]
          else FGeocoderResults:=TGeocoderResults.Create(Script,FCallbackFunction.Arguments[0]);
        FCallback(self,FGeocoderResults,FCallbackFunction.Arguments[1]);
      end else
      begin
        FCallback(self,nil,FCallbackFunction.Arguments[1]);
      end;
    except
    {$IFDEF DEBUG}
      ShowMessage(Exception(ExceptObject).Message);
    {$ENDIF}
    end;
  end;
end;
Alle anderen warten einfach auf die neue Version des Frameworks.

Um viele Geocoding-Anfragen ohne Fehlermeldung durchführen zu können hat es sich bewährt, zwischen den einzelnen Abfragen etwas eine Sekunde Zeit zu lassen:
Anhang 35297

Eine andere Strategie wäre:
  1. Anfragen ohne Verzögerung bist OVER_QUERY_LIMIT
  2. Warten
  3. Letzte Anfrage wiederholen
  4. weiter mit 1

andras.szikra 4. Okt 2011 08:57

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

Could you please publish that demo where route internal "over" point can be added? I don't know how to do it. Adding waypoints not working.

Thanks, András

Zitat:

Zitat von Thom (Beitrag 1123971)
Schön, daß es funktioniert! :-D

Die Gesamtlänge eine Strecke bzw. Gesamtreisedauer kann zum Beispiel so ermittelt werden:
Delphi-Quellcode:
  TotalDistance:=0;
  TotalDuration:=0;
  with Result.Routes[0] do //<- erste Route
    for Leg:=0 to Legs.Count-1 do //<- alle Abschnitte durchgehen
      with Legs[Leg] do
      begin
        Inc(TotalDistance,Distance.Value); //<- Länge des Abschnitts
        Inc(TotalDuration,Duration.Value); //<- Reisedauer für diesen Abschnitt
      end;
Google Maps arbeitet mit den Spracheinstellungen des PC's. Auf meinem sendet der IE also ein 'de' - dementsprechend werden alle Menüs und Ausgaben auf Deutsch angezeigt. Es ist aber auch möglich, eine bestimmte Sprache zu erzwingen. Das geht beim Laden des API's. In der kommenden Version des Frameworks kann sie als Parameter angegeben werden:
Delphi-Quellcode:
 
procedure TScript.LoadAPIAsync(InitMapProc: TNotifyEvent;
                               UseSensor: Boolean;
                               Version: String;
                               Language: String; //<- 'de'
                               Libraries: TGoogleLibraries);
In den älteren Versionen (1.1 - 1.3) muß dafür in der Unit gmAPI die Funktion HTMLPage angepaßt werden:
Delphi-Quellcode:
  [...]
  Result:=Result+
          '   <script type="text/javascript" src="http://maps.google.com/maps/api/js?&sensor=';
  if UseSensor
    then Result:=Result+
        'true'
    else Result:=Result+
          'false';
  //zusätzlich:
  Result:=Result+'&language=de';
  [...]
So sieht zum Beispiel die Routenplanung mit 'ru' aus:
Anhang 35161 Anhang 35162 Anhang 35164
Allerdings funktioniert Unicode nur mit den entsprechenden Compilern und erst ab Version 2.0 des Frameworks.

Die Routeninformationen werden mit HTML-Tags (zum Beispiel <b></b>) geliefert. Die müßten dann selbst oder durch eine geeignete Komponente geparst und dargestellt werden.


Thom 4. Okt 2011 10:20

AW: Google Maps über COM (Component Object Model)
 
Hi András,

yes, you're right. Adding waypoints work in version 1.1 not really (see this post). Give me your email address via PM and I'll send you the current version 1.3.

Thom

andras.szikra 4. Okt 2011 10:34

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

Please send to this mail address: aszikra@freemail.hu Thanks.

András

fduenas 5. Okt 2011 23:58

AW: Google Maps über COM (Component Object Model)
 
Hi Thom, is there a way I can also get 1.3? mine is fduenas@gmail.com

Thanks

Thom 6. Okt 2011 09:55

AW: Google Maps über COM (Component Object Model)
 
Is on the way.

fduenas 6. Okt 2011 15:19

AW: Google Maps über COM (Component Object Model)
 
Many Thanks Thom. :)
hope to see Framework 2.0 soon
Regards


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Seite 14 von 55   « Erste     4121314 151624     Letzte »    

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