Deutschland Karte: Rechteck über dhtml positionieren?

Nein, weil jetzt die Punkte zum Bild fest dazugehören und so keine eigenen Objekte mehr sind.
Versuche es: Rechtsklick auf das Bild -> Speichern unter... siehe da: die Punkte bleiben da...

Also musst du mit dem Bild an sich arbeiten.
Und die Möglichkeit mit überlagerten Divs ist jetzt an dem Punkt angekommen völlig sinnfrei, da du dann auf dieses ganze Überlagern mit der GDLib hättest verzichten können.
 
Eine Sache noch:

Ich habe in
PHP:
			 $standortnummer = $GLOBALS['lv']->f('standortnummer');

die Standortnummer, die auf den Punkten zu sehen sein soll. Wie kann ich das am besten umsetzten?

So erhalte ich eine Nummer auf alle Punkte, aber immer die Gleiche.
PHP:
			 $standortnummer = $GLOBALS['lv']->f('standortnummer'); 

			// Standortnr. in Punkt eintragen
			// Pfad zum Font
			$font_file = 'setron_karte/arialf';
			// Font Farbe
			$black = imagecolorallocate($punkt, 0xFF, 0xFF, 0xFF);
			// Die Standortnummer mit Fontsize 7 auf den Punkt $punkt schreiben
			$punktneben = imagefttext($punkt, 7, 0, 1, 7, $black, $font_file, $standortnummer);

Das ganze muss doch wieder in die foreach Schleife....so dachte ich:

PHP:
			foreach ($userpos as $wert){
				if ($wert[xpos]!=0 && $wert[ypos]!=0){ // Punkt setzten, sobald Koordinaten vorhanden sind
					$x1 = $wert[xpos] - 5; // 5px abziehen, damit Koordinaten stimmen, wegen 10x10 Pixel vom Punkt
					$y1 = $wert[ypos] - 5; 
					
					$punktneben = imagefttext($punkt, 7, 0, 1, 7, $black, $font_file, $standortnummer);

					imagecopymerge($punktneben, $punkt, $x1, $y1, 0, 0, 8, 8, 100); 
				}
			}

Klappt nur nicht....
 
Ähem...
du musst natürlich irgendwie an einen Bezug zu deinen Punkten gekommen, der wievielte das sein soll...
Ich kann dir dabei echt nicht helfen, wie du daran kommst...
Entweder countest du einfach deine Werte hoch oder du hinterlegst die auch entsprechend in deinem Array...
 
Ähem...
du musst natürlich irgendwie an einen Bezug zu deinen Punkten gekommen, der wievielte das sein soll...
Ich kann dir dabei echt nicht helfen, wie du daran kommst...
Entweder countest du einfach deine Werte hoch oder du hinterlegst die auch entsprechend in deinem Array...

ok, werd ich mal versuchen.

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

ok, ich habs mir mal angeguckt und auch für einen Punkt hinbekommen. Und zwar so:

PHP:
			// Map für die MouseOver platzierung 
			<map name="karte">
				<area href="#eins" alt="Text" coords="<?=$xpos-10 // 10 ist die größe des Punktes ?>,<?=$ypos-10 ?>,<?=$xpos+10 ?>,<?=$ypos+10 ?>" shape="rect" onmouseover="Tip('hamburg@setron.de')">
			</map>

Um das nun für alle Punkte zu machen, muss ich was tun?
 
über deinem <img>-Tag irgendwo einfügen:

PHP:
echo '<map name="karte">';
foreach ($userpos as $wert){
  if ($wert[xpos]!=0 && $wert[ypos]!=0){ 
    $x1 = $wert[xpos] - 5; 
    $y1 = $wert[ypos] - 5; 
    echo '<area href="#eins" alt="Text" coords="'.$x1-10.', '.$ypos-1-', '.$xpos+10.', '.$ypos+10.'" shape="rect" onmouseover="Tip('hamburg@setron.de')">'
  }
}
echo '</map>';

so schwer ist das doch jetzt nicht gewesen... :suspekt:
 
stimmt, nur erhalte ich immer ein SyntaxFehler.
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in

Hier stimmt was nicht....
PHP:
					echo '<area href="#eins" alt="Text" coords="'.$x1-10 .' , '.$y1-10 .', '.$xpos+10 .', '.$ypos+10 .'" shape="rect" onmouseover="Tip('hamburg@setron.de')">';
 
So, der Fehler ist weg. Habe es allerdings eher nicht so schön gelöst:


PHP:
<?
			echo '<map name="karte">'; 
				foreach ($userpos as $wert){
					if ($wert[xpos]!=0 && $wert[ypos]!=0){ // Punkt setzten, sobald Koordinaten vorhanden sind
						$x1 = $wert[xpos] - 8; // 8px abziehen, damit Koordinaten stimmen, wegen 16x16 Pixel vom Punkt
						$y1 = $wert[ypos] - 8; 
						?>
						<area href="#eins" alt="Text" coords="<?=$x1-10 // 10 ist die größe des Punktes ?>,<?=$y1-10 ?>,<?=$xpos+10 ?>,<?=$ypos+10 ?>" shape="rect" onmouseover="Tip('urg@n.de')" >	
						<?
						imagecopymerge($bild, $punkt, $x1, $y1, 0, 0, 8, 8, 100); // Zusammenfügen der Karte + Punkt
					}
				} 
			echo '</map>';

Jedoch stimmt die Ausgabe nicht:
Ich habe jetzt mal probeweise 3 Standorte hinzugefügt und erhalte folgendes im Seitenquelltext (Auszug):

PHP:
<map name="karte">						<area href="#eins" alt="Text" coords="175,179,203,207" shape="rect" onmouseover="Tip('urg@n.de')" >	
						</map>

<map name="karte">						<area href="#eins" alt="Text" coords="175,179,198,102" shape="rect" onmouseover="Tip('urg@n.de')" >	
												<area href="#eins" alt="Text" coords="170,74,198,102" shape="rect" onmouseover="Tip('urg@n.de')" >	
						</map>

<map name="karte">						<area href="#eins" alt="Text" coords="175,179,335,426" shape="rect" onmouseover="Tip('urg@n.de')" >	
												<area href="#eins" alt="Text" coords="170,74,335,426" shape="rect" onmouseover="Tip('urg@n.de')" >	
												<area href="#eins" alt="Text" coords="307,398,335,426" shape="rect" onmouseover="Tip('urg@n.de')" >	
						</map>

Der erste Eintrag ist korrekt aber beim 2 und 3 doppelt sich das schon alles. Bei 2. Eintrag stehen z.B noch die Koordinaten vom 1 Eintrag drin...
 
du lässt das scheinbar irgendwo in einer doppelten Schleife ausführen.
Du musst sicherstellen, dass diese foreach-Schleife die ich dir gepostet habe AUSSERHALB der anderen schleife stattfindet.
 

Neue Beiträge

Zurück