WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Animation von Punkten auf Karte

 

raaged
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 20.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2014, 08:01     Titel: Animation von Punkten auf Karte
  Antworten mit Zitat      
Hi,

ich möchte, dass sich Punkte, bestimmt durch Längen- (Lon) und Breitengrad (Lat) auf einer Landkarte bewegen (Animation).

Zur Darstellung der Punkte und Karte mittel Längen- und Breitengradangaben verwende ich die Mapping-Toolbox, speziell den Befehl geoshow.

Geoshow bekommt eine geostruct übergeben und liefert ein hggroup-Objekt zurück. Laut Matlab-Hilfe lassen sich diese Objekte mit einer hgtransform bewegen. Funktioniert aber so noch nicht. Außerdem spuckt Matlab immer eine Warnung aus (versucht irgendwie struct in double zu wandeln oder so...)

Was mache ich falsch? Geht das anders? Danke!

Hier mein Code:
Code:

fig = figure;
ax = gca;
hold(ax, 'on');

specVecpos = makesymbolspec('Point',{'Default','Marker','o','MarkerSize',5,...
    'MarkerEdgeColor', 'cyan', 'MarkerFaceColor','cyan'});

lon_start = 10.89025;
lat_start = 52.41037;

lon_cur = lon_start;
lat_cur = lat_start;

vehicle_pos = struct('Geometry', 'Point', 'Lon', lon_start, 'Lat', lat_start, 'Id', 0);
vec = geoshow(vehicle_pos, 'SymbolSpec', specVecpos);
% hold off;
t = hgtransform('Parent',ax);
set(vec,'Parent',t);

for i = 1:100
    lon_cur = lon_cur - 0.1*lon_start;
    lat_cur = lat_cur - 0.1*lat_start;
    vehicle_pos.Lon = lon_cur;
    vehilce_pos.Lat = lat_cur;
   
    m = makehgtform('translate',lon_cur-lon_start,lat_cur-lat_start,0);
    t.Matrix = m;
    drawnow update;
    pause(0.5)
end


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2014, 09:37     Titel: Re: Animation von Punkten auf Karte
  Antworten mit Zitat      
Hallo raaged,

Bei Erklärungen wie "Funktioniert aber so noch nicht" kann man grundsätzlich nur mit Raten helfen. Bitte erkläre also, was genau nicht funktioniert, z.B. welches Ergebnis Du erwartest und welches Du erhälst.

Zitat:
Außerdem spuckt Matlab immer eine Warnung aus (versucht irgendwie struct in double zu wandeln oder so...)

Bitte poste die vollständige Warn-Meldung. Insbesondere die Zeile, welche die Meldung erzeugt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
raaged
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 20.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2014, 10:23     Titel:
  Antworten mit Zitat      
Hi, danke für die Hinweise.

Die Warnung tritt in der Zeile

Code:
t.Matrix = m;


auf und lautet (nicht 100% sicher weil ich gerade keinen Zugang zu meinem Skript habe, nur aus meiner Erinnerung von gestern)

"Warning: Struct field assignment overwrites a value with class "double". See MATLAB R14SP2 Release Notes, Assigning Nonstructure Variables As Structures Displays Warning, for details."

Was passiert: Der Punkt vehicle_pos wird bei
Code:
vec = geoshow(vehicle_pos, 'SymbolSpec', specVecpos);


angezeigt. Es findet keine weitere Bewegung statt.

Was soll passieren: Er Punkt soll sich nach links bewegen.
Private Nachricht senden Benutzer-Profile anzeigen
 
raaged
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 20.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2014, 09:29     Titel:
  Antworten mit Zitat      
Der Trick ist übrigens nicht geoshow sondern plotm der Mapping-Toolbox zu verwenden. Das Grafikobjekt lässt sich dann über Transformationen (hgtransform etc.) animieren.

Problem dabei ist, dass sich nicht Längen und Breitentrag verwenden lassen. Die Transformation muss in den projezierten x und y- Koordinaten erfolgen. (mfwdtran verwenden).
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.