Deutschland Karte: Rechteck über dhtml positionieren?

PHP:
<? print_r($userpos) ?>

ergibt

PHP:
Array ( [0] => 299 [1] => 87 [2] => Miami )


Hier ist der Wurm drin...
PHP:
			foreach ($userpos as $wert){
				if ($wert !=0 && $ypos[$key]!=0){ 
					$x1 = $wert - 3; 
					$y1 = $ypos[$key] - 3; 
					imagecopymerge($bild, $punkt, $x1, $y1, 0, 0, 8, 8, 100); 
				}
			}
 
Sorry daß ich das so sage, aber ein bißchen mitdenken wäre nicht schlecht.

Zum einen hast du genau einen Wert im Array, also wird auch nur ein Punkt gesetzt. Zum anderen mußt du natürlich die Variablen in der Schleife wieder so ändern, wie es am Anfang war.
PHP:
        if ($wert[xpos]!=0 && $wert[ypos]!=0){ 
            $x1 = $wert[xpos] - 3; 
            $y1 = $wert[ypos] - 3;
Ich hoffe mal, das mit der Niederlassungs-Kennung und dem Array kriegst du allein hin. Steht alles in den vorherigen Posts.
 
Das hatte ich auch schon probiert ;-)
PHP:
        if ($wert[xpos]!=0 && $wert[ypos]!=0){ 
            $x1 = $wert[xpos] - 3; 
            $y1 = $wert[ypos] - 3;


Das komische ist, dass bei
PHP:
$wert[xpos];

24 rauskommt, es aber eigentlich 201 sein müsste (201 steht so auch in $userpos)
 
Das muß woanders herkommen. An der Rechnung kann es def. nicht liegen. Zeig doch nochmal das ganze Script im jetzigen Stadium.
 
Ok, hier das gesamte Script:


PHP:
			<?php 
			// Koordinaten aus Objekt in Variable schreiben
			 $xpos = $GLOBALS['lv']->f('xpos'); 
			 $ypos = $GLOBALS['lv']->f('ypos'); 
			 $stammsitz = "Miami"; 
			
			// Array schreiben
			$userpos = array($xpos,$ypos,$stammsitz);
			
			$bg = imagecreatefrompng("setron_karte/karte_deutschland.png"); 
			$punkt = imagecreatefrompng("setron_karte/pixel.png");
			$punktb = imagecreatefrompng("setron_karte/pixel.png"); 
			
			$width = imagesx($bg);
			$height = imagesy($bg); 
			$bild = imagecreatetruecolor($width, $height); 
			$weiss = imagecolorallocate ( $bild, 255, 255, 255);
			imagecolortransparent ( $bild, $weiss ); 
			imagecopymerge($bild, $bg, 0, 0, 0, 0, $width, $height, 100);
			foreach ($userpos as $wert){ // hier enthält $wert noch die richtigen Werte
				if ($wert[xpos]!=0 && $wert[ypos]!=0){ // ab hier enthält $wert[xpos] und $wert[ypos] den falschen Wert,z.B 21
					$x1 = $wert[xpos] - 3;
					$y1 = $wert[ypos] - 3; 
					imagecopymerge($bild, $punkt, $x1, $y1, 0, 0, 8, 8, 100); 
				}
			} 
			$file_name_dest = "setron_karte/karte_deutschland_trans.png"; 
			@unlink("setron_karte/karte_deutschland_trans.png");
			imagepng($bild,$file_name_dest); 
			?>
 
Komisch ist auch, dass beim ausgeben von

PHP:
echo $wert[stammsitz];

22M rauskommt. Es sollte eigentlich Miami rauskommen.
 
auf diese weise funktioniert das auch nicht...
Wenn du dein Array mit einer foreach-Schleife durchläufst, aber auf folgende Weise:

PHP:
foreach($userpos as $key -> $wert) {
  echo $key.' '.$wert.'<br/>';
}

dann solltest du als Ausgabe folgendes bekommen:
Code:
0 [DEIN WERT FÜR $xpos]
1 [DEIN WERT FÜR $ypos]
2 Miami
wobei die Zahlen dann für die Keys stehen, über die du die Werte in dem Array ansprechen musst...
$wert wird bei jedem foreach-Durchlauf mit dem entsprechenden Wert befüllt, der neben dem Key in dieser
Ausgabe steht... dabei handelt es sich nicht um ein Array...


Versuche einfach mal deinen Wert folgendermaßen in $userpos zu bringen:
PHP:
$meineDaten = array('xpos'  => $xpos, 'ypos' => $ypos, 'stammsitz' => 'Miami');
$userpos[] = $meineDaten;

Wenn du dann dein foreach durchführst, sollte das gehen!
Dann aber bitte auch mit
PHP:
$wert['xpos']
 
Zuletzt bearbeitet:
Es geht!

So siehts aus:

PHP:
			// Array schreiben
			$meineDaten = array('xpos'  => $xpos, 'ypos' => $ypos, 'stammsitz' => 'Miami');
			$userpos[] = $meineDaten;

Und die Schleife:

PHP:
			foreach ($userpos as $wert){
				if ($wert[xpos]!=0 && $wert[ypos]!=0){ // Punkt setzten, sobald Koordinaten vorhanden sind
					$x1 = $wert[xpos] - 3; // 3px abziehen, damit Koordinaten stimmen, wegen 6x6 Pixel vom Punkt
					$y1 = $wert[ypos] - 3; 
					imagecopymerge($bild, $punkt, $x1, $y1, 0, 0, 8, 8, 100); 
				}
			}

Danke danke!

Ist es möglich noch ein Javascript mouseover event auf die Punkte zu legen?
Beim MouseOver soll einfach ein layer über der Karte angezeigt werden, der die Adressdaten enthält. Das Script dazu habe ich schon, es geht nur ums Verbinden mit den Punkten.
 
das einfachste ist jetzt, eine imagemap über dieses Bild zu legen. Dafür brauchst du dann einfach nochmal die Koordinaten durchgehen und in eine ImageMap schreiben.
Die einzelnen Links bieten da auch ein MouseOver an:

ImageMap-Link
 
gibts da noch eine andere Möglichkeit?
Kann ich nicht üben den generierten Punkt ein MouseOver legen ohne ImageMap?
 

Neue Beiträge

Zurück