- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 6 von 6

Thema: Messwerte mit GPS Daten verknüpfen und Visualisieren. Wie???

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Guten morgen,
    mit txt-Dateien kannst du mit GoogleEarth nichts werden. Solch eine TXT-Datei musst du ins KML-Format konvertieren. Erst dann versteht sie Google. Mittels der GoogleEarth-AP und einem Java-Programm kannst du dann Polygone zeichnen für deine Flächen. Unter der GoogleEarth-Hilfe findest du dafür genug Beispiele. Für die Konvertierung ins KML-Format frag mal Dr.Google.

    Tschüss Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.237

    Beitrag

    Ok, hab nach langer Zeit eine Lösung gefunden.
    Eventuell gibt es da was, das noch optimaler ist.
    Meine Dateien sehen jetzt folgendermassen aus:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
    <name>ReipData</name>
    <description>Reip Datas from specified Crop. Note that the tessellate tag is by default
    set to 0. If you want to create tessellated lines, they must be authored
    (or edited) directly in KML.</description>
    <Style id="705_26">
    <LineStyle>
    <color>ff2500DB</color>
    <width>2</width>
    </LineStyle>
    </Style>
    <Placemark>
    <name>705_26</name>
    <description>Reip 705,9 Deck 26%</description>
    <styleUrl>#705_26</styleUrl>
    <LineString>
    <extrude>1</extrude>
    <tessellate>1</tessellate>
    <altitudeMode>clampToGround</altitudeMode>
    <coordinates>
    11.560925,49.023080,369
    11.560925,49.023080,369
    </coordinates>
    </LineString>
    </Placemark><Style id="706_26">
    <LineStyle>
    <color>ff2800D8</color>
    <width>2</width>
    </LineStyle>
    </Style>
    <Placemark>
    <name>706_26</name>
    <description>Reip 706,4 Deck 26%</description>
    <styleUrl>#706_26</styleUrl>
    <LineString>
    <extrude>1</extrude>
    <tessellate>1</tessellate>
    <altitudeMode>clampToGround</altitudeMode>
    <coordinates>
    11.560925,49.023080,369
    11.560928,49.023078,369
    </coordinates>
    </LineString>
    </Placemark>
    ></Document>
    </kml>
    Damit ist es nun möglich 2 Messwerte mit Farbe und Breite einer Linie darzustellen.
    Ein Codeschnipsel zu Erzeugen des Strings hab ich mal hier:
    Code:
    void handlelog(void)
    {
    unsigned char low=0,high=0;
    unsigned int buffer=0,ui_i=0;
    unsigned char text[400];
    unsigned char sametext[14],reiptext[14];
    switch (logstate)
        {
        case logoff:
        if(LOGSW==0)
            {
            logstate=logstart; 
            }
        break;
        
        case logstart:
        logstate=writeheader1;
        logtimer=6;
        break;
        
        case writeheader1:
        strcpyf(text,header1);
        for (ui_i=0;ui_i<strlen(text);ui_i++)
            {
            putchar(text[ui_i]);
            }
        logstate=writeheader2;
        break;
        
        case writeheader2:
        strcpyf(text,header2);
        for (ui_i=0;ui_i<strlen(text);ui_i++)
            {
            putchar(text[ui_i]);
            }
        logstate=writeheader3;
        break;
        
        case writeheader3:
        strcpyf(text,header3);
        for (ui_i=0;ui_i<strlen(text);ui_i++)
            {
            putchar(text[ui_i]);
            }
        if(LOGSW==0)
            {
            oldlatx=latx;
            oldlath=lath;
            oldlatl=latl;
            oldlongx=longx;
            oldlongh=longh;
            oldlongl=longl;
            logstate=writedata;
            }
        else
            {
            logstate=writecloser;
            }
        break;
        
        case writedata:
        /* Hier müssen noch die REIP Daten für das File generiert
        und an den SD CARD Reader übergeben werden
        */
        /*
        <Style id="720_50">
          <LineStyle>
            <color>ff800080</color>
            <width>5</width>
          </LineStyle>
        </Style>
        <Placemark>
          <name>720-50</name>
          <description>Reip 720, Deck 50</description>
        <styleUrl>#720_50</styleUrl>
          <LineString>
            <extrude>1</extrude>
            <tessellate>1</tessellate>
            <altitudeMode>clampToGround</altitudeMode>
            <coordinates>
            11.561936,49.023278,2357
              11.561935,49.023277,2357
              11.561930,49.023277,2357
              11.561927,49.023281,2357
            </coordinates>
        </LineString>
        </Placemark>
        */
        strcpyf(text,"<Style id=\"");
        high=reip/10;
        itoa(high,sametext),
        strcpyf(reiptext,"7");
        if(high<10){strcatf(reiptext,"0");}
        strcat(reiptext,sametext);
        strcatf(reiptext,"_");
        itoa(deck,sametext);
        strcat(reiptext,sametext);
        strcat(text,reiptext);
        strcatf(text,"\">\r\n");
        strcatf(text,"<LineStyle>\r\n<color>ff");
        buffer=reip*100;
        buffer/=157;
        high=buffer>>4;
        low=buffer&0x0F;
        if(high<10)
            {
            high+=0x30;
            }
        else
            {
            high+=0x37;
            }
        if(low<10)
            {
            low+=0x30;
            }
        else
            {
            low+=0x37;
            }
        sametext[0]=high;
        sametext[1]=low;
        sametext[2]='0';
        sametext[3]='0';
        buffer=256-buffer;
        high=buffer>>4;
        low=buffer&0x0F;
        if(high<10)
            {
            high+=0x30;
            }
        else
            {
            high+=0x37;
            }
        if(low<10)
            {
            low+=0x30;
            }
        else
            {
            low+=0x37;
            }
        sametext[4]=high;
        sametext[5]=low;
        sametext[8]=0;
        strcat(text,sametext);
        strcatf(text,"</color>\r\n<width>");
        low=deck/10;
        if(low<1){low=1;}
        itoa(low,sametext);
        strcat(text,sametext);
        strcatf(text,"</width>\r\n</LineStyle>\r\n</Style>\r\n<Placemark>\r\n<name>");
        strcat(text,reiptext);
        strcatf(text,"</name>\r\n<description>Reip 7"); //720, Deck 50</description>"
        buffer=reip/10;
        itoa(buffer,sametext);
        if(buffer<10){strcatf(text,"0");}
        strcat(text,sametext);
        strcatf(text,",");
        buffer=reip%10;
        itoa(buffer,sametext);
        strcat(text,sametext);
        strcatf(text," Deck ");
        itoa(deck,sametext);
        strcat(text,sametext);
        strcatf(text,"%</description>\r\n<styleUrl>#");
        strcat(text,reiptext);
        strcatf(text,"</styleUrl>\r\n<LineString>\r\n<extrude>1</extrude>\r\n<tessellate>1</tessellate>\r\n<altitudeMode>clampToGround</altitudeMode>\r\n<coordinates>\r\n");
        if(oldlongx=='W'){strcatf(text,"-");}
        itoa(oldlongh,sametext);
        strcat(text,sametext);
        strcatf(text,".");
        ltoa(oldlongl,sametext);
        if(oldlongl<100000){strcatf(text,"0");}
        if(oldlongl<10000){strcatf(text,"0");}
        if(oldlongl<1000){strcatf(text,"0");}
        if(oldlongl<100){strcatf(text,"0");}
        if(oldlongl<10){strcatf(text,"0");}
        strcat(text,sametext);
        strcatf(text,",");
        if(oldlatx=='S'){strcatf(text,"-");}
        itoa(oldlath,sametext);
        strcat(text,sametext);
        strcatf(text,".");
        ltoa(oldlatl,sametext);
        if(oldlatl<100000){strcatf(text,"0");}
        if(oldlatl<10000){strcatf(text,"0");}
        if(oldlatl<1000){strcatf(text,"0");}
        if(oldlatl<100){strcatf(text,"0");}
        if(oldlatl<10){strcatf(text,"0");}
        strcat(text,sametext);
        strcatf(text,",");
        buffer=height/10;
        itoa(buffer,sametext);
        strcat(text,sametext);
        strcatf(text,"\r\n");
        if(longx=='W'){strcatf(text,"-");}
        itoa(longh,sametext);
        strcat(text,sametext);
        strcatf(text,".");
        ltoa(longl,sametext);
        if(longl<100000){strcatf(text,"0");}
        if(longl<10000){strcatf(text,"0");}
        if(longl<1000){strcatf(text,"0");}
        if(longl<100){strcatf(text,"0");}
        if(longl<10){strcatf(text,"0");}
        strcat(text,sametext);
        strcatf(text,",");
        if(latx=='S'){strcatf(text,"-");}
        itoa(lath,sametext);
        strcat(text,sametext);
        strcatf(text,".");
        ltoa(latl,sametext);
        if(latl<100000){strcatf(text,"0");}
        if(latl<10000){strcatf(text,"0");}
        if(latl<1000){strcatf(text,"0");}
        if(latl<100){strcatf(text,"0");}
        if(latl<10){strcatf(text,"0");}
        strcat(text,sametext);
        strcatf(text,",");
        buffer=height/10;
        itoa(buffer,sametext);
        strcat(text,sametext);
        strcatf(text,"\r\n");
        strcatf(text,"</coordinates>\r\n</LineString>\r\n</Placemark>");
        for(ui_i=0;ui_i<strlen(text);ui_i++)
            {
            putchar(text[ui_i]);
            }
        //Prepare for next data record
        oldlatx=latx;
        oldlath=lath;
        oldlatl=latl;
        oldlongx=longx;
        oldlongh=longh;
        oldlongl=longl;
        if(LOGSW!=0)
            {
            logstate=writecloser;
            }
        break;
        
        case writecloser:
        strcpyf(text,closer);
        for (ui_i=0;ui_i<strlen(text);ui_i++)
            {
            putchar(text[ui_i]);
            }
        logstate=fileclosed;
        logtimer=32;
        break;
        }
    }
    Ist sicher noch nicht optimal das Ganze, aber ein funktionierender Anfang.

Ähnliche Themen

  1. Notebook mit Sensoren und Motoren verknüpfen
    Von Gil-Galad im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 5
    Letzter Beitrag: 05.04.2010, 11:44
  2. RS232 Daten in Echtzeit visualisieren
    Von samm_2006 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 19.09.2009, 22:08
  3. RS232 Daten Visualisieren
    Von Che Guevara im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 12.05.2009, 04:51
  4. Antworten: 9
    Letzter Beitrag: 06.06.2007, 11:56
  5. Mehrere Variablen verknüpfen
    Von Xairo im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 03.12.2006, 23:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress