Ich setzte mit einem langen druck auf das Display einen Marker. Die Position kann ich auch abfragen und stimmt. Aber sobald ich den Marker ziehe (dragge) und wieder loslasse, stimmt die abgefragte Position nicht. Es wird immer die alte Position geliefert.
Warum??
Testcode zum Abfragen der neuen Position in MapView1MarkerDragEnd(Marker: TMapMarker);
Es wird hier der letzte gesetzte Marker abgefragt.
Code:
showmessage(floattostr(fmarkers.Items[Fmarkers.Count-1].Descriptor.Position.Latitude)+' '+floattostr(fmarkers.Items[Fmarkers.Count-1].Descriptor.Position.Longitude));
oder
Code:
showmessage(floattostr(marker.Descriptor.Position.Latitude)+' '+floattostr(marker.Descriptor.Position.Longitude));
Beides liefert die alte Position.
Kann mir bitte jemand sagen wie ich an die aktuelle Markerposition komme nach dem draggen des Markers? Danke!
Einen neuen Marker erstelle ich so:
Code:
MyMarker := TMapMarkerDescriptor.Create(marker.Descriptor.Position, '*temp*');
MyMarker.Draggable := True;
MyMarker.Visible :=True;
Fmarkers.Add(MapView1.AddMarker(MyMarker));