hi,
ich versuche grade eine mit PHP dynamische landkarte zu erstellen.
das mache ich so:
Code:
Code:
Code:
echo '
<h2>Karte</h2>
<br><br>
<div>
< map name="karte">
';
$sys=GET("sys"); // das ausgewählte system
if($sys=='') // wenn kein system angegeben wurde...
{
$planet =implode(mysql_fetch_row(mysql_query('SELECT planet FROM stations WHERE UID='.$UID.' AND typ="capitol"'))); // den planet aussuchen wo das kapitol liegt
$system =implode(mysql_fetch_row(mysql_query('SELECT system FROM planets WHERE ID='.$planet))); // das system aussuchen wo der eben genannte planet liegt
$posA =implode(mysql_fetch_row(mysql_query('SELECT posA FROM systems WHERE ID='.$planet)));
$posB =implode(mysql_fetch_row(mysql_query('SELECT posB FROM systems WHERE ID='.$planet))); // die positionen von dem oben gennannten system raussuchen
}
else // wenn ein system angegeben wurde
{
$posA =implode(mysql_fetch_row(mysql_query('SELECT posA FROM systems WHERE ID='.$sys))); // positionen von dem ausgewählten system raussuchen.
$posB =implode(mysql_fetch_row(mysql_query('SELECT posB FROM systems WHERE ID='.$sys)));
}
echo $posB.' - '.posA; // is nur zum test ob die positionen richtig rausgesucht wurden.
$result=mysql_query('SELECT ID,name,posA,posB FROM systems WHERE (posA>'.($posA-300).' AND posA<'.($posA+300).') AND (posB>'.($posA-300).' AND posB<'.($posA+300).')'); // es werden alle systeme rausgesucht die maximal 300einheiten von unserem system entfernt sind.(damit sie ins bild passen^^)
while(@$row=mysql_fetch_array($result, MYSQL_NUM))
{
$row[2]=$posA-$row[2];
$row[3]=$posA-$row[3]; // die rausgesuchten positionen werden von denen abgezogen die ausgewählt wurden.
echo '
<area shape="rect" style="" coords="'.$row[2].','.$row[3].','.($row[2]+15).','.($row[3]+15).'" alt="'.$row[1].'" style="background-color:white">
<img src="images/star.PNG" style="position:absolute; top:'.$row[2].'; left:'.$row[3].'" width=15 height=15> // dies SOLLTE eigentlich das bild genau auf dem stern platzieren, tuts aba nich.
';
}
echo '
</map><p><img src="images/karte.png" width="600" height="600" alt="Karte" style="border:2;" usemap="#karte"></p></div>
';
das problem:
da die areas selber kein bild dorthin manchen muss ich mit <img> selbst eins hinmachen. aber diese werden mit style="position:absolute; top:xxx; left:xxx" nicht in die karte gepackt sondern links oben an den fenster rand.
abmessen und addiren geht auch nicht weil sich die karte nich immer genau am gleichen punkt im fenster befindet.
was kann ich machen damit die bilder genau auf dem area platziert werden?
Lesezeichen