Heppy
Wie kann man Linien zeichnen und alles dan in einer kmz Datei speichern? Vielen Dank
Mooki
| Zitat: |
Original von Heppy
Wie kann man Linien zeichnen und alles dan in einer kmz Datei speichern? Vielen Dank
|
Naja, Sketchup ist für ein paar Linien etwas oversized, und ich finde teilweise auch ungenau.
Simple :
Punkte für Linie als Placemark setzen, am besten in extra Ordner und Reihenfolge beachten
Den Ordner als KML abspeichern =>
pl.kml
Neue Datei im Texteditor deiner Wahl erstellen mit folgenden Inhalt
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Placemark>
<name>Linie</name>
<visibility>0</visibility>
<styleUrl>#khStyle6500</styleUrl>
<MultiGeometry id="khMultiGeometry705">
<LineString id="khLineString706">
<altitudeMode>relativeToGround</altitudeMode>
<coordinates>
XX,XX,XX
XX,XX,XX
</coordinates>
</LineString>
</MultiGeometry>
</Placemark>
</kml> |
|
Diese abspeichern als
linie.kml
Nun die KML
pl.kml öffnen.
Zu jedem Placemark findet du eine
<coordinates>Long,Lat,H</coordinates>
In der KML
linie.kml ersetzt du XX,XX,XX durch die Werte Lon,Lat,H
Pro Placemark eine Zeile.
Das H gibt die Höhe - relative zum Boden - an.
Wenn das erfolgt ist abspeichern und mit GE öffnen.
Hier kannst du jetzt auch noch Farbe, Dicke usw. einstellen.
Für mehrer EINZELNE Linien einfach den Bereich
<Placemark>...</Placemark>
mehrfach setzen.
Bei weiteren Fragen PM oder hier
pfifferhannes
Ist das noch aktuell?
Ich zeichne Linien und Kreise mit Hilfe einer Excel-Tabelle und gebe per Makro eine KML-Datei aus.
Siehe Beispiel.
Suchst Du sowas?
Wenn gewünscht, dann stelle ich die Excel-Datei gerne zur Verfügung und stelle auch eine kleine Anleitung ein.
Liebe Grüße
pfifferhannes
awz
Ich zeichne Linien und Kreise mit Hilfe einer Excel-Tabelle und gebe per Makro eine KML-Datei aus.
Siehe Beispiel.
Suchst Du sowas?
Wenn gewünscht, dann stelle ich die Excel-Datei gerne zur Verfügung und stelle auch eine kleine Anleitung ein.
Also ich wäre daran interessiert.
carlo
Hallo,
Warum zeichnet ihr die Linien nicht mit GE eigenen Funktion?
Gruß
stefan123456789
Wenn du mir verrätst wie man so nen schönen Kreis direkt mit GE macht`?
carlo
Hallo,
Aber gern,Beispiel im Anhang
Erklärung : Gif Bilder mit transparenten Hintergrund als Overlay
(läßt sich einfach in der Größe ändern)
kmz mit Winzip öffnen, im files Ordner sind 3 Beispielbilder
luv4tn
| Zitat: |
Original von Mooki
In der KML linie.kml ersetzt du XX,XX,XX durch die Werte Lon,Lat,H
Pro Placemark eine Zeile.
Das H gibt die Höhe - relative zum Boden - an.
|
Hi Mooki,
Wie wird die Höhe angegeben ... Meter oder Fuß? Hintergrund ... ich will mir die Tracks von meinen Urlaubsflügen anlegen. Die Daten bekomme ich von Flightaware und die geben - wie in der Fliegerei üblich - die Höhe in Fuß an.
Danke!
Mooki
Laut
KML-Referenz in Metern, du scheinst wohl um ein bisschen rechnen nicht herumzukommen.
1 ft = 0,3048 m also 1 m = 3,2808 ft
Auszug aus der KML-Ref :
Determined by the position of the point coordinates. The value is expressed in decimal degrees and meters above sea level.
mendor
Hallo, sorry wenn ich dieses alte thema wieder raufhole, aber habe grade ein problem, und brauche da hilfe.
Folgendes Problem, ich schreibe grad ein C# Program das mir aus einer Datenbank einzelne Koordinaten wiedergibt, um diese Koordinaten soll immer ein 150m radius Kreis angezeigt werden in Google Earth via KML Datei.
Nun hab ich folgende Funktionen in meinem Programm:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
private double deg2rad(double deg)
{
return deg * (Math.PI / 180d);
}
private double rad2deg(double rad)
{
return rad *(180d / Math.PI);
} |
|
wenn ich dann das schreiben des Kreises in kml anfange rechne ich so wie ich es im PHP source code des Circle Generators
LINKgefunden hab:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
double Latitud = deg2rad(double.Parse(_Coords[i].Latitude.Replace(".", ",")));
double Longitud = deg2rad(double.Parse(_Coords[i].Longitude.Replace(".", ",")));
double d_rad = (_radius / 6378137d);
double M_PI = Math.PI;
for (int j = 0; j <= 360; j+=5)
{
double radial = deg2rad(j);//((Math.PI*j)/180);
double lat_rad = Math.Asin(Math.Sin(Latitud) * Math.Cos(d_rad) + Math.Cos(Latitud) * Math.Sin(d_rad) * Math.Cos(radial));
double dlon_rad = Math.Atan2(Math.Sin(radial) * Math.Sin(d_rad) * Math.Cos(Latitud), Math.Cos(d_rad) - Math.Sin(Latitud) * Math.Sin(lat_rad));
double lon_rad = ((Longitud + dlon_rad + M_PI) %( 2 * M_PI)) - M_PI;
xtr.WriteString(rad2deg(lat_rad).ToString().Replace(",", ".") + ", " + rad2deg(lon_rad).ToString().Replace(",", ".") + ", 0 ");
} |
|
Aber anstatt eines Kreises wie in der php Version bekomme ich eine Ellipse....

Hilfe was mache ich falsch????
PS: Habe auch einfachere Formel versucht, selbes Ergebniss
| code: |
1:
2:
3:
4:
|
double lat_rad = Latitud+d_rad*Math.Cos(deg2rad(j));
double lon_rad = Longitud + d_rad * Math.Sin(deg2rad(j));
|
|