[PHP/HTML] dynamische Punkte auf einer Standortkarte

halo4@SETI[CB]

Lt. Junior Grade
Registriert
Jan. 2002
Beiträge
489
Hallo,

ich habe vor mir mit dem Macromedia Dreamweaver 4 eine HTML Seite mit Standortkarte (z.B BRD) zu machen, auf der ich dynamische Punkte setzen kann welche dann durch einen Link auf eine andere Seite verweisen.
die Koordinaten der Punkte sowie deren Tooltip-text und Link sollen mittels MySQL aus einer Datenbank ausgelesen werden.

Das soll dann etwa so aussehen (nur die untere Karte!).

So nun zu meinen Fragen:

1. Ist das mit PHP / HTML machbar?
2. Hat jemand für so etwas in der Art ein Beispiel für mich da?
oder 3. kennt jemand ein brauchbares Tutorial für diese sache ( Karte mit verlinkten Punkten ) ?

schon mal Danke für die Hilfe.
 
Zuletzt bearbeitet:
ImageMaps könnten dir helfen, da hast du ein Hintergrund und bereichsweise Links auf dem Bild: http://de.selfhtml.org/html/grafiken/verweis_sensitive.htm
Das Ganze ist ganz einfaches HTML!

Wenn du da Orte dynamisch drauf machen willst dann bietet sich natürlich PHP oder JavaScript an, wie du dir warscheinlich schon denken kannst :)
 
also es muss dynamisch sein, ich favorisiere PHP nur bin ich noch nicht so der profi drin und suche ein bespiel, kann aber nichts passendes finden.
 
Also PHP kannste du das ja nur soweit "dynamisch" machen, dass Benutzer irgendwie Punkte hinzufügen können und diese dann (am besten in MySQL gespeichert werden) beim erneuten Aufruf der Karte mit drin stehen.
PHP generiert einfach nur HTML Seiten dynamisch! Mir ist jedoch nicht 100%ig klar, dass du dieses dynamisch meinst?
 
Jepp, was meinst Du mit 'dynamisch'?

Für die Umsetzung brauchst Du wohl:

HTML - Visualisierung
PHP - Programmlogik
MySQL - zur Speicherung der Daten
JS - für das Abfangen der Aktionen der User

Rock on!!! :D
 
also:

also ich habe eine MySQL datenbank, wo ich verschiedene Punkte mit Koords von der Karte und anderen eigenschaften drin habe. dynamisch deswegen, da ich Punkte in der Datenbank löschen und hinzufügen kann, also dürfte es mit sachen wie

<map name="D-karte">
<area shape="rect" coords="19,10,48,29" href="http://www.xxxxx.de/" alt="Test">


nicht funktionieren.

Bei jeden aufrufen der Seite sollen dann z.b. alle Punkte mit PLZ (Beispiel) = 4 auf der karte dargestellt werden.
Alle benötigten sachen zum Punkt sollen halt auch aus der Datenbank genommen werden (->Dynamisch :D ).
JS wollte ich eigentlich nicht nutzen, geht das nicht auch mit PHP?

Wichtig: Es geht mir erst mal nur um die Anzeige der Punkte und deren verlinkung, nicht um das anlegen / löschen von Punkten auf der Seite!
 
Zuletzt bearbeitet:
Die I/O mit der DB läuft schon mit PHP, bloß musste die Sachen ja dann in HTML einbinden.

also so z.B.:

echo '<map name="'.$map_name.'">';

Soweit ich weiß ist PHP nicht dafür gedacht Useraktionen abzufangen, dafür sind die Events bei JS da.

Alternativ kannste ja auch ganz normale HTML-Links nehmen.

//edit:
Sehr hilfreich:
Das und das...
Ist ziemlich gut beschrieben...
 
Zuletzt bearbeitet:
Hallo,

wenn Du die Pixel-Koordinaten mit in der Datenbank speicherst ist es eigentlich ganz simpel. Packe die Karte als Hintergrundbild (CSS) in einen relativ positionierten Container und erstelle für jeden Eintrag aus der Datenbank einen neuen Link, dem Du über das "style"-Attribut eine absolute Positionierung zuteilst. Durch die relative Positionierung des Containers richten sich alle Kindelemente, die absolut positioniert sind, nach der Position der Ecken des Elternelements. Sprich: "position: absolute; top: 0; left: 0;" ist nicht mehr die linke obere Ecke des Browserfensters, sondern des Kartencontainers.
Wenn das zu Performanceproblemen führt bliebe alternativ noch die Möglichkeit mit der GD-Bibliothek von PHP ein Bild zu erstellen, welches nur die Positionsmarker enthält und über der eigentlichen Karten positioniert wird. Das geht dann aber nur in Kombination mit einer Imagemap.

Schwieriger finde ich den Ansatz, wie man eine verweis-sensitive Karte ertellen soll, die zum Hinzufügen der Positionsmarker dient. Wenn Du eine 1px-Genauigkeit erreichen willst, wäre eine Methode mit dynamisch erzeugten Links ziemlicher Overkill. Bei einer 500x500px Karte wären das 250.000 Links. ;) Selbst bei 5px-Genauigkeit noch 10.000 Links. Da muss, denke ich, eine JS-Lösung her, die onmouseover dynamisch einen Link mit den entsprechenden Koordinaten erzeugt.

Die Ansätze sind sicher nicht der Weisheit letzter Schluß, aber vielleicht dienen sie Dir ja als Anregung.

MfG
Alex
 
Zurück
Oben