Die deutsche Google Maps Community.
Die Möglichkeiten sind da!
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
Übersicht ::
Google Maps API ::
Sonstiges ::
ovl datei aus einer MySQL automatisch erstellen
moderiert von:
Steffen
ovl datei aus einer MySQL automatisch erstellen |
||
|---|---|---|
| maffy | verfasst: 14.10.2006, 10:32 | |
Immer hier
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 |
|
|
|
|
|
| fritze | verfasst: 14.10.2006, 19:01 | |
Immer hier
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. |
|
|
|
|
|
| maffy | verfasst: 15.10.2006, 11:12 | |
Immer hier
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 |
|
|
|
|
|
| fritze | verfasst: 15.10.2006, 17:47 | |
Immer hier
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] |
|
|
|
|
|
| __MM__ | verfasst: 13.02.2007, 14:33 | |
Neu hier
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] |
|
|
|
|
|
| maffy | verfasst: 13.02.2007, 16:58 | |
Immer hier
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 |
|
|
|
|
|
| __MM__ | verfasst: 13.02.2007, 18:04 | |
Neu hier
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 |
|
|
|
|
|
| maffy | verfasst: 28.03.2007, 17:21 | |
Immer hier
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 |
|
|
|
|
|
| __MM__ | verfasst: 28.03.2007, 18:04 | |
Neu hier
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 |
|
|
|
|
|
| maffy | verfasst: 29.03.2007, 09:30 | |
Immer hier
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 |
|
|
|
|
|
User online:
Diese Angaben basieren auf den Useraktivitäten der letzten 10 Minuten