Sie sind hier : sebastian1012.bplaced.net/ homepage-neu / Kurze-Scripte-und-Codeschnipsel / index.php

Zurück


Der Quellcode dazu


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
$planWidth
=800;        // pixel; Breite des Stadtplans
$planHeight=600;       // pixel; Hoehe des Stadtplans
$roadSizeBase=12;      // pixel; Breite einer Strasse
$roadsMinDistHoriz=60// pixel; Mindestabstand rechter Rand einer Strasse zum linken Rand der rechts liegenden Parallelstrasse
$roadsMinDistVert=80;  // pixel; Mindestabstand unterer Rand einer Strasse zum oberen Rand der darunter liegenden Parallelstrasse
$planOffsetLeft=30;    // pixel; erste X-Koordinate der ganz links liegenden Strasse
$planOffsetTop=20;     // pixel; erste Y-Koordinate der ganz oben liegenden Strasse

$img=imagecreatetruecolor($planWidth,$planHeight);
$bgcolor=imagecolorallocate($img,128,128,128);
imagefill($img,0,0,$bgcolor);

$roadColorBase=imagecolorallocate($img,0,0,0);

$roads=array(); // erhaelt die [Rechteck-]Koordinaten jeder Strasse
$streetID=0;    // jede Strasse bekommt eine ID; hier einfacher Zaehler, der hochgezaehlt wird
                // erste Strasse bekommt ID 1, zweite Strasse ID 2 etc.

// die Strassennamen sind hier in einem eigenen Array definiert,
// werden aber nochmal in das roads-Array uebernommen.
// Ist nicht zwingend noetig, aber so hat man alles in einem Array.
// Gleiches gilt fuer die Strassenlinks.
$strassenNamen=array(
  
=> 'Strasse #1',
  
=> 'Strasse #2',
  
=> 'Strasse #3',
  
=> 'Strasse #4',
  
=> 'Strasse #5',
  
=> 'Strasse #6',
  
=> 'Strasse #7',
  
=> 'Strasse #8',
  
=> 'Strasse #9',
 
10 => 'Strasse #10',
 
11 => 'Strasse #11',
 
12 => 'Strasse #12',
 
13 => 'Strasse #13',
 
14 => 'Strasse #14',
 
15 => 'Strasse #15',
 
16 => 'Strasse #16',
 
17 => 'Strasse #17',
 
18 => 'Strasse #18'
);

$strassenLinks=array(
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
  
=> 'http://www.example.com',
 
10 => 'http://www.example.com',
 
11 => 'http://www.example.com',
 
12 => 'http://www.example.com',
 
13 => 'http://www.example.com',
 
14 => 'http://www.example.com',
 
15 => 'http://www.example.com',
 
16 => 'http://www.example.com',
 
17 => 'http://www.example.com',
 
18 => 'http://www.example.com'
);

$areas=''// !! wird ausgegeben, aber muss im Quelltext gefunden werden, weil <area>-Tags; einfuegen in usemap

// ######################
// vertikale Strassen
// ######################
// fuer senkrechte Strassen: linken Rand beachten. Y-Werte gehen von 0 bis $planHeight
// hier wird ein Rechteck als erste senkrechte Strasse definiert
$x1=$planOffsetLeft;
$y1=0;
$x2=$x1+$roadSizeBase;
$y2=$planHeight;

WHILE(
$x2 $planWidth)
{
 
// die Koordinaten eines Rechtecks sind die Definition der Strasse.
 // Zwar gibt es Ueberschneidungen an den Kreuzungen, aber damit muss man leben.
 
$streetID++;
 
$roads[$streetID]=array($x1,$y1,$x2,$y2,$strassenNamen[$streetID],$strassenLinks[$streetID]);
 
$areas.="<area id=\"$streetID\" shape=\"rect\" coords=\"$x1,$y1,$x2,$y2\" href=\"$strassenLinks[$streetID]\" title=\"$strassenNamen[$streetID]\">\n";
 
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$roadColorBase);
 
$x1=$x2+$roadsMinDistHoriz;
 
$x2=$x1+$roadSizeBase;
}

// ######################
// horizontale Strassen
// ######################
// fuer waagerechte Strassen: oberen Rand beachten. X-Werte gehen von 0 bis $planWidth
// hier wird ein Rechteck als erste waagerechte Strasse definiert
$x1=0;
$y1=$planOffsetTop;
$x2=$planWidth;
$y2=$y1+$roadSizeBase;

WHILE(
$y2 $planHeight)
{
 
$streetID++;
 
$roads[$streetID]=array($x1,$y1,$x2,$y2,$strassenNamen[$streetID],$strassenLinks[$streetID]);
 
$areas.="<area id=\"$streetID\" shape=\"rect\" coords=\"$x1,$y1,$x2,$y2\" href=\"$strassenLinks[$streetID]\" title=\"$strassenNamen[$streetID]\">\n";
 
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$roadColorBase);
 
$y1=$y2+$roadsMinDistVert;
 
$y2=$y1+$roadSizeBase;
}

imagejpeg($img,'plan1.jpg');
imagedestroy($img);

//print_r($roads);
echo$areas;
?>