PlanetGMaps Forum

planetGMaps

Die deutsche Google Maps Community.
Die Möglichkeiten sind da!

Forum

Forum Suche | Forum Übersicht | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen


zum vorhergehenden Thema Thema drucken zum nächsten Thema

Übersicht ::  Google Maps API ::  Sonstiges ::  ovl datei aus einer MySQL automatisch erstellen
moderiert von: Steffen

Zum aktuellsten Beitrag 

ovl datei aus einer MySQL automatisch erstellen

maffy verfasst: 14.10.2006, 10:32
Immer hier
Immer hier
maffy

registriert: Aug. 2006
Beiträge: 57

Status: offline
letzter Besuch: 10.03.09
Ich habe eine MySQL Datenbank mit Ausflugszielen und möchte gerne mit PHP eine Funktion erstellen mit der man ausgewählte Ziele automatisch als Datei im *.ovl Format für die Top50 Karten erstellen kann.

Gibt es da schon fertige Scripts oder Funktione?

So sieht die erzeugte Datei aus der Top50 CD im ASCIII Format aus.

[Symbol 1]
Typ=1
Group=1
Width=100
Height=100
Dir=100
Zoom=1
Trans=2
TransByte=5
Path=G:\Programme\Top50\Overlay\testm004.bmp
XKoord=10.09727576
YKoord=50.28509395
[Symbol 2]
Typ=1
Group=1
Width=100
Height=100
Dir=100
Zoom=1
Trans=2
TransByte=5
Path=G:\Programme\Top50\Overlay\testm005.bmp
XKoord=10.10586095
YKoord=50.27749832
[Symbol 3]
Typ=2
Group=1
Col=5
Area=2
Zoom=2
Size=115
Font=1
Dir=100
XKoord=10.10472658
YKoord=50.27606318
Text=Ruine Steineck
[Overlay]
Symbols=3
[MapLage]
MapName=Top. Karte 1:50.000 Bayern-Nord
DimmFc=100
ZoomFc=141
CenterLat=50.28364872
CenterLong=10.10400429
RefOn=0

Mfg Maffy



editiert von: maffy, 13.10.2006, 21:33 Uhr

--
leben und leben lassen
Nach oben  Profil PM senden
 
fritze verfasst: 14.10.2006, 19:01
Immer hier
Immer hier
fritze

registriert: Jul. 2006
Beiträge: 76

Status: offline
letzter Besuch: 08.02.07
mhmmm ovl?? was ist denn das?

aber die liste sieht doch garnicht gefährlich aus... eine php schleife müsste die datei doch einfach generieren können, oder?

würde dir auch nen script schreiben, aber ich kenn den aufbau der mysql datenbank nicht.
Nach oben  Profil PM senden
 
maffy verfasst: 15.10.2006, 11:12
Immer hier
Immer hier
maffy

registriert: Aug. 2006
Beiträge: 57

Status: offline
letzter Besuch: 10.03.09
Die Daten per PHP zusammen zustellen ist nicht das Problem, sondern die Downloaddatei.

Um mir die Arbeit zu sparen, die ovl Datei in der Top50 per Hand anzulegen soll das ein PHP Script automatisch erstellen wenn jemand auf ein Button in der liste klickt.

So sieht die Datei aus, die von der Top50 CD erstellt wurde:

[Symbol 1]
Typ=1
Group=1
Width=100
Height=100
Dir=100
Zoom=1
Trans=2
TransByte=5
Path=G:\Programme\Top50\Overlay\testm004.bmp
XKoord=10.09727576
YKoord=50.28509395

[Overlay]
Symbols=1

[MapLage]
MapName=Top. Karte 1:50.000 Bayern-Nord
DimmFc=100
ZoomFc=141
CenterLat=50.28364872
CenterLong=10.10400429
RefOn=0

So sieht das Script aus.
Er legt die Datei als .*ovl an, speichert die Daten rein. Dann sollte er die Datei Downloaden.

Soweit macht er das auch bis auf den Download der Datei. Der klappt noch nicht richtig.

[CODE=php] $id = $_GET['id'];

$query = mysql_query("Select * from " . ZIELE_TABLE . " WHERE ID = ".$id." ");
$row = mysql_fetch_array($query);

$lat = $row['LAT'];
$lon = $row['LON'];

$content .= " Download für Datei wird vorbereitet:
";

// Datei erstellen
$file = "tmp".$id.".ovl";

$datei = fopen("".$file."","a+");
fputs($datei,"Hier steht der Text
Hier steht noch einer
");
fclose($datei);

function DownloadFile($file, $datei)
{
header('Content-disposition: filename='.$datei.'');
header('Content-type: application/octetstream');
header('Pragma: no-cache');
header('Expires: 0');
}

DownloadFile("".$file."","rhoen.ovl");[/CODE]

Mfg Maffy


--
leben und leben lassen
Nach oben  Profil PM senden
 
fritze verfasst: 15.10.2006, 17:47
Immer hier
Immer hier
fritze

registriert: Jul. 2006
Beiträge: 76

Status: offline
letzter Besuch: 08.02.07
probier mal aus. bei mir macht er damit den download.

[code=php]
<?php
$id = $_GET['id'];

$query = mysql_query("Select * from " . ZIELE_TABLE . " WHERE ID = ".$id." ");
$row = mysql_fetch_array($query);

$lat = $row['LAT'];
$lon = $row['LON'];

$content .= " Download für Datei wird vorbereitet:
";

// Datei erstellen
$file = "tmp".$id.".ovl";

$file = fopen($file,"a+");
fputs($file,"Hier steht der Text
Hier steht noch einer
");
fclose($file);

function DownloadFile($file, $datei)
{
header('Content-disposition: filename='.$datei);
header('Content-type: application/octetstream');
header('Pragma: no-cache');
header('Expires: 0');
}

DownloadFile($file,"rhoen.ovl");

?>
[/code]
Nach oben  Profil PM senden
 
__MM__ verfasst: 13.02.2007, 14:33
Neu hier
Neu hier
__MM__

registriert: Feb. 2007
Beiträge: 3

Status: offline
letzter Besuch: 28.03.07
's paßt hier nicht gaaanz exakt dazu, aber vielleicht hilft's im weiteren Entwicklungsstadium dessen, was du hier vorhast?

Eine PHP-Klasse, die .ovl-Dateien direkt lesen und in Google maps darstellen kann.

[url]http://81.2.133.38/probike/gmap_upload_test.php[/url]
Nach oben  Profil PM senden Webseite
 
maffy verfasst: 13.02.2007, 16:58
Immer hier
Immer hier
maffy

registriert: Aug. 2006
Beiträge: 57

Status: offline
letzter Besuch: 10.03.09
Das sieht ganz gut aus!

Ich arbeite mit den Top50 Karten der Landes Vermessungsämter bzw.wenn ich Unterwegs bin mit einem Garmin Etrex Vista.

Wie muss bei diesem Sript die OVL Datei aussehen, damit ich das verwenden kann?

Kann man das auch für einzelne OVL Dateien verwenden oder nur für Tracks.

Mfg Maffy


--
leben und leben lassen
Nach oben  Profil PM senden
 
__MM__ verfasst: 13.02.2007, 18:04
Neu hier
Neu hier
__MM__

registriert: Feb. 2007
Beiträge: 3

Status: offline
letzter Besuch: 28.03.07
Hallo Maffy,
die OVL-Dateien "eurer" ;) Top50-Karten funktionieren damit genauso - basieren sie doch auf demselben Prinzip bzw. derselben Software, die sie erzeugt; das hat dann mit dem GPS-Gerät an sich nichts zu tun, ist davon unabhängig.

Die OVL-Dateien müssen für ovl2gmap im ASCII-Format vorliegen - also nicht im Binärformat. Die Top50-Kartenwerke bieten beim Speichern eines Overlays die dafür nötige Auswahlmöglichkeit an im Dateidialog, wo man unterhalb des Feldes zur Eingabe des Dateinamens das zu verwendende Format auswählen kann. Da muß ASCII ausgewählt werden, um entsprechende Dateien zu erhalten.
Das Skript sollte auch mit in der Datei enthaltenen Grafiken oder Symbolen zurecht kommen (= sie ignorieren). Sicherheitshalber sollten vor dem Speichern des Overlays aber alle unnötigen Teile (die erwähnten Symbole bzw. Grafiken) entfernt werden.

Das Skript erwartet eine einzelne Overlay-Datei als Input.

Durch Umschreiben des Abschnitts, wo die Datei gelesen wird, kann man prinzipiell alle möglichen Dateiarten zum Einlesen implementieren, wobei das aber nur mehr bedingt sinnvoll ist, schließlich bietet Google maps ja seit geraumer Zeit die Möglichkeit, KML- bzw. KMZ-Dateien direkt einzulesen (was ich persönlich total genial finde. :) :) )



editiert von: __MM__, 13.02.2007, 05:05 Uhr
Nach oben  Profil PM senden Webseite
 
maffy verfasst: 28.03.2007, 17:21
Immer hier
Immer hier
maffy

registriert: Aug. 2006
Beiträge: 57

Status: offline
letzter Besuch: 10.03.09
Ich habe jetzt deinen bsp. Code auf meiner Testseite eingebaut.

[url=http://www.der-rhoen-fuehrer.info/portal/internet/module/touren/index2.php]Testseite[/url]

Kann ich den Code so anpassen, das der Zoom Level bzw. die Karte automatisch angepasst wird.

Mfg Maffy

--
leben und leben lassen
Nach oben  Profil PM senden
 
__MM__ verfasst: 28.03.2007, 18:04
Neu hier
Neu hier
__MM__

registriert: Feb. 2007
Beiträge: 3

Status: offline
letzter Besuch: 28.03.07
:-) Freut mich, daß du's brauchen kannst!

Der Zoomlevel richtet sich nach zwei Parametern:

a) nach der Ausdehnung des Overlays
b) nach der Größe des Karten"fensters"

Diese zwei müßte man in Betracht ziehen, um einen "Auto-Zoom" zu implementieren.

Die Ausdehnung des Overlays läßt sich recht einfach herausfinden, indem man nämlich beim Einlesen des ASCII-Files die Minimal- und Maximalwerte der West-Ost- bzw. Nord-Süd-Koordinaten notiert. Durch Umrechnen käme man damit mal auf ein Rechteck a * b in (Kilo)Metern.

Je größer nun dieses Rechteck a * b im Verhältnis zum Rechteck des Kartenfensters e * f ist, desto kleiner muß der Zoomfaktor sein.

Beispiel: a * b = 10 * 20 km und e * f = 100 * 200 km => "Zoomfaktor 10" wäre passend; betrüge e * f nur 50 * 40 km, müßte der Zoomfaktor auf "5" gesetzt werden, damit a * b darin optimal Platz findet, und betrüge e * f = 10 * 20 km, ergäbe sich der Zoomfaktor zu "1", d. h. kein Zoom ist vonnöten.

Das nur zur Veranschaulichung; Google maps verwendet ja ganz andere Zahlenwerte für die Zoomfaktoren, d. h. die Basis ist da eine andere, auf die sich die Faktoren beziehen.

Vielleicht findest auf Grund dieses Denkansatzes eine praktikable Lösung?





editiert von: __MM__, 28.03.2007, 05:08 Uhr
Nach oben  Profil PM senden Webseite
 
maffy verfasst: 29.03.2007, 09:30
Immer hier
Immer hier
maffy

registriert: Aug. 2006
Beiträge: 57

Status: offline
letzter Besuch: 10.03.09
Da muss ich mal schaun wie ich das machen kann, aber so wie es im Augenblick ist passt es schon.

Ich werde versuchen das Script noch so zu erweitern, das ich bei der Route einzelne Marker anzeigen lassen kann in der Bilder, Infos oder Videoclips aus einer Datenbank geladen werden.

Mal schaun ob ich das hin bekomme.

Mfg Maffy


--
leben und leben lassen
Nach oben  Profil PM senden
 


User online:

Diese Angaben basieren auf den Useraktivitäten der letzten 10 Minuten

^ Top | © 2006 planet-gmaps.de | css | xhtml