@
DelphiFan:
[...] ich experimentiere gerade mit "Direction Draggable" und habe ein paar Fragen zu Erweiterungen, welche in der Web-Applikation
Motoplaner verwendet wird [...]
Das ist unglücklicherweise eine Anwendung, die noch die Version 2 des
API's (deprecated) verwendet. Schau Dich mal um, ob Du eine vergleichbare Karte findest, die das aktuelle
API verwendet. Dann könntest Du Dir den JavaScript-Quelltext anschauen und sinngemäß mit Delphi nachbauen.
- wie kann ich Positions-Marker wieder löschen, vgl. Klick auf Marker -> Dialog
Marker allgemein unsichtbar machen:
Marker.SetMap(TMap(nil)).
Marker in einer Route: Diese Marker werden vom
TDirectionsRenderer-Objekt automatisch bei allen Zwischenpunkten gesetzt. Zugriff erhält man darauf über das
TDirectionsResult-Objekt (
DirectionsRenderer.GetDirections). Hier müßte als der Zwischenpunkt entfernt werden.
- wie kann ich das Aussehen des Positions-Marker verändern -> verschiebbarer Positions-Marker Bsp. Rund mit Plus
Über das
TDirectionsRendererOptions-Objekt (
DirectionsRendererOptions.MarkerOptions).
- wie kann ich den Maus-Cursor verändern Bsp. auf freier Karte Fadenkreuz
Über das
TMapOptions-Objekt (
MapOptions.DraggableCursor).
- wie kann ich die aktuelle Position des Positions-Marker LAT/LNG evntl. HÖHE ermitteln
Mit dem
TElevationService-Objekt (
ElevationService.GetElevationForLocations(...));
- wie kann ich am einfachsten die Route bzw. Punkte aus GoogleMap in Delphi speichern und wieder aus Delphi in GoogleMap übertragen
Datenbank, Ini-Datei, KML-Datei, ... je nach Vorliebe. Die direkte Unterstützung von KML-Dateien durch das Framework ist in Planung. Momentan arbeite ich an der Unterstützung des JSON-Formats.
- wie kann ich die aktuelle Länge der gesamten Route und von ersten Punkt zum verschiebbaren Positions-Marker ermitteln
Diese Informationen werden alle im
TDirectionsResult-Objekt zurückgeliefert (zum Beispiel die Länge des ersten Streckenabschnitts:
DirectionsResult.Routes[0].Legs[0].Distance.Value)
- wie kann ich eine Liste (Track) aus der Route erzeugen Bsp. alle 100m entlang der Route LAT/LNG und evntl. HÖHE ermitteln und als Liste abspeichern
Eine Route besteht aus einer Liste von Punkten (Lat/Lng-Paaren). Diese haben allerdings nicht den selben Abstand voneinander. Die Anzahl der Punkte ist abhängig von der erforderlichen Genauigkeit (Entfernung Start- zu Zielpunkt und wie "verwinkelt" die Strecke ist). Auch diese Punkte befinden sich im
TDirectionsResult-Objekt.
@
EWeiss:
Vielen Dank!!!
@
Manfred:
Auch an Dich vielen Dank!
Die Ermittlung von Geodaten ist eine rechenintensive Angelegenheit - deshalb
begrenzt Google die Anfragen sowohl bezüglich der Anzahl als auch bezüglich der zeitlichen Abfolge. Die Alternative wäre eine Premier-Lizenz.
Ich empfehle folgende Vorgehensweise:
- Geocoding eines Wertes
- Wert OK -> weiter mit 1.
- Timeout (experimentell bei etwa 5-10 Sekunden)
- Weiter mit 1.