| cr4m0 |
Geschrieben am: Mo 17.03.2008, 23:12
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 194 Mitglied seit: 30.07.2007 |
Ich möchte gerne auf einer Karte bestimmte Orte anzeigen, deren Koordinaten ich genau kenne. Als Hintergrundbild habe ich eine Karte, auf der nur Grenzen eingezeichnet sind. Darauf sollen dann kleine Grafiken platziert werden, die die Orte markieren. Die Grafiken werden mit CSS (left:x; top:y) an der richtigen Position angezeigt.
Meine Frage: Wie kann ich das genau umsetzen? Soll ich eine Datenbank aufbauen, in denen ich allen Koordinaten bestimmte Top- und Left-Werte zuweise? Oder gibt es noch eine andere Möglichkeit? Danke für eure Hilfe im Voraus! |
![]() |
|
#2 Geschrieben am: Mo 17.03.2008, 23:47 (+00:35)
|
|
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Dafür kannst du auch eine Funktion einsetzen:
Für meine schweizer Karte geht das: "Grad-Stunden-Minuten-Sekunden" oder irgendwie so: $x=explode('-',$f[1]); $y=explode('-',$f[2]); $x_loc=round(0.034*((($x[0]*3600)+($x[1]*60)+$x[2])-22104)+(-564),0); $y_loc=round(-0.047726055*((($y[0]*3600)+($y[1]*60)+$y[2])-171711)+(-348),0); Die rechnet Längen - und Breitengrade ziemlich genau in pixel um. Musst halt schauen, dass die Konstanten für jede Karte richtig gesetzt sind. (Massstab, linker Rand, rechter Rand) Bei grösserem Masstäben müsstest du noch die unterschiedliche Breite der Längengrade mit einbeziehen. Die sind hier konstant breit. Die Schweiz ist halt klein Gruss Tümmel |
![]() |
| cr4m0 |
#3 Geschrieben am: Mo 17.03.2008, 23:53 (+00:06)
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 194 Mitglied seit: 30.07.2007 |
OK, danke schonmal. Das sieht ganz gut aus. Aber es wäre nett, wenn du dazu noch etwas erklären könntest. Denn ich verstehe bisher überhaupt nichts davon (Welche Variable ist was? Wo muss ich die Konstanten setzen?).
|
![]() |
|
#4 Geschrieben am: Di 18.03.2008, 00:05 (+00:12)
|
|
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Gute Frage, das habe ich irgendwann letztes Jahr berechnet.
$x_loc=round(0.034*((($x[0]*3600)+($x[1]*60)+$x[2])-22104)+(-564),0); $y_loc=round(-0.047726055*((($y[0]*3600)+($y[1]*60)+$y[2])-171711)+(-348),0); 22104 war glaub ich der westlichste Zipfel in Sekunden. und 171711 der nördlichste Punkt in Sekunden Das ist also beides 0 auf der Karte. 564px ist die Breite der Karte und 348px die Höhe. 0.034 und -0.047726055 müssten massstababhängig sein, bin mir aber nicht sicher. So bleibt der Punkt mit position:relative auch bei verschiedenen Bildschirmauflösungen gleich. Ausserdem kann man auch 1/10 und 1/100 s setzen, obwohl 1/100 bei round(xy,0) eigentlich keine Rolle mehr spielen. Probier halt mal ein bisschen rum oder vielleicht hat ja jemand eine Lösung für das genaue Setzen bei jedem Masstab. |
![]() |
| Alain_Aubert |
#5 Geschrieben am: Di 18.03.2008, 00:12 (+00:06)
|
|
Ayom Slave Gruppe: Admin Beiträge: 4823 Mitglied seit: 25.09.2003 |
Ich würde in Erwägung ziehen, Google Maps zu benutzen. Da kannst Du einfach die Koordinaten übergeben und gut ist.
|
![]() |
|
#6 Geschrieben am: Di 18.03.2008, 01:40 (+01:27)
|
|||
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Das ruiniert aber die Seitenladezeit. |
||
![]() |
| MX |
#7 Geschrieben am: Di 18.03.2008, 09:43 (+08:03)
|
||
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 170 Mitglied seit: 2.01.2008 |
Für phpBB Foren gibt es ein tool, geomap - http://www.newscenterx.de/tools.php Evtl. könnte man das anpassen? |
||
![]() |
|
#8 Geschrieben am: Di 18.03.2008, 16:39 (+06:55)
|
|||
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Der das zip file ist mit 1.77mb ziemlich gross. Sind da die Bilder gleich mitgeliefert ? Die Funktion oben ist schon nicht schlecht. Es war nur kein Bedarf die Breite der Längengrade genauer zu definieren, da die Erdkrümmung bei 250km vernachlässigbar ist. Wer trotzdem Lust hat: 1 $px_absolut=$meter * $masstab / $sekunden (Länge einer Sekunde am Äquator.) Dann einfach den Umfang des jeweiligen Breitengrades in Meter sodass man die Breite eines Längengrades in Metern berechnen kann. Dann ist 1 $px_lokal=$meter_local * $masstab / $sekunden 1px=$px_lokal/$px_absolut Damit wäre dann die dritte Zeile fertig. Viel Spass. Wenn einer Interesse hat, und das nicht selbst ausrechnen will pm wie gehabt: 100.- chr Computer einschalten und 10.- chr die Rechnung |
||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/23533
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Woher bekomme ich eine Visa/Mastercard Karte? | Josh | 2096 | 8 | Mi 9.07.2008, 19:27 |
| Hilfe: GoogleMaps-Karte einbinden? | japsa | 240 | 3 | Di 11.12.2007, 11:46 |
| Norderney-Karte.de - Norderney hautnah erleben! | Jan-Remmer Harms | 797 | 12 | Mo 5.11.2007, 19:49 |
| Affilliate Links "markieren" | André Griepenburg | 227 | 2 | Mo 30.04.2007, 12:23 |
| onclick="window.status = 'Karte 0'; geh ... | ThePosterity | 459 | 4 | Mi 14.02.2007, 13:05 |
| Ayom User Karte | Alain Aubert | 452 | 5 | Fr 22.09.2006, 09:20 |
| Gratis SIM-Karte?!?! | MasterG | 480 | 2 | Sa 16.09.2006, 14:11 |
| UMTS Karte fürs Notebook | Seev | 1703 | 19 | Mi 12.07.2006, 07:41 |
| 1 Karte gibt's noch für die WM 2006 | Lanza | 541 | 8 | Di 13.06.2006, 10:37 |
| Karte | Christian | 389 | 6 | Fr 10.02.2006, 09:07 |
Anzeige - [Hier werben / Mediadaten]












