[GastForen Programmierung/Entwicklung PHP und MySQL Landkarte mit ImageMagick

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

20. Jan 2006, 13:35
Beitrag # 1 von 12
Bewertung:
(7728 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich komme hier leidder nicht weiter:

exec(composite -geometry +31+105 ort.png karte.png neu.png);

Ich möchte hiermit einen Punkt (ort.png) auf einer Karte (karte.png) an
eine bestimmten Position (-geometry +31+105) zeichnen.

Das neu entsandene Bild (neu.png) wird auch korrekt mit diesem Punkt ausgegeben. Also soweit funktioniert es schon.
Was mache ich aber nun, wenn mehrere Orte so markiert werden sollen?
Muss ich da immer das neu entstande Bild als Startbild zur Bearbeitung hernehmen
oder kann man alle Punkt in einem Rutsch mit exec() platzieren?
Die Werte für -geometry kommen aus einer DB.

Bin gerade am Verzweifeln. Hat jemand eine Idee?

Gruß
Christoph
X

Landkarte mit ImageMagick

SabineP
Beiträge gesamt: 7586

20. Jan 2006, 14:14
Beitrag # 2 von 12
Beitrag ID: #206092
Bewertung:
(7727 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

da gibts verschiedene Möglichkeiten, auch in einem Rutsch:

http://www.cit.gu.edu.au/...cs/imagick6/mosaics/

Gruß Sabine


als Antwort auf: [#206069]

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

20. Jan 2006, 15:37
Beitrag # 3 von 12
Beitrag ID: #206132
Bewertung:
(7720 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Sabine,

beim Stöbern habe noch den DRAW Befehl entdeckt. Da bin ich etwas flexibler.

Das sieht jetzt so aus:

$command = "convert karte.png -fill red
-draw 'circle 50,30 40,10'
-draw 'circle 60,40 50,20'
neu.png";

Damit das Ganze übersichtlicher aussieht möchte ich für das Befüllen
der Variable $command mehrere Zeilen verwenden.
Dummerweise wird das so nicht akzeptiert.
Hast Du da noch ne Idee?


Womit ich auch noch nicht klar komme, sind die Parameter bei DRAW.
In der Datenbank habe ich lediglich 1 Koordinaten-Paar X Y.
Wie kann ich das mit DRAW verwirklichen? Dort gibt es ja 4 Werte.
Der Kreis soll ja immer die gleiche Größe haben.

Für weitere Hilfe wäre ich sehr dankbar.

Gruß Christoph


als Antwort auf: [#206092]

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

20. Jan 2006, 16:34
Beitrag # 4 von 12
Beitrag ID: #206142
Bewertung:
(7718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Befüllen der Variable habe ich gelöst:

$command = "convert karte.png";
$command .=" -fill red -draw 'circle 50,30 40,10'";
$command .=" -fill yellow -draw 'circle 60,40 50,20'";
$command .=" neu.png";

Aber das mit den Parametern macht mich ganz wirr.

Ich möchte einen Kreis mit 10 Pixel Durchmesser an der Positon x=10 und y=50
platzieren.
Bitte wie stelle ich das an?

CHristoph


als Antwort auf: [#206132]

Landkarte mit ImageMagick

SabineP
Beiträge gesamt: 7586

20. Jan 2006, 19:42
Beitrag # 5 von 12
Beitrag ID: #206170
Bewertung: |||
(7710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

>> Ich möchte einen Kreis mit 10 Pixel Durchmesser an der Positon x=10 und y=50

circle 10,50 6,46

>> Bitte wie stelle ich das an?

www.imagemagick.org/script/command-line-options.php#draw


circle x0,y0 x1,y1
Circle has a center coordinate (das sind x0 und y0) and a coordinate for the outer edge (das sind x1 und y1).

Schau Dir nun die Skizze im Anhang an.
Zeichnung
Den Radius kennst Du, das sind 5 Pixel
c=5 (Radius)

a=b
a ist noch unbekannt, diesen Wert kannst Du mit dem Satz des Pythagoras ermitteln.
Pythagoras: aQuadrat + bQuadrat = cQuadrat
Formel nach a umgestellt ergibt
a = Wurzel aus cQuadrat/2

und ganzzahlig runden

x0 und y0 sind bekannt

x0=10
Y0=50

x1 und y1 kannst Du nach Ermitteln von a berechnen

x1=x0-a
y1=y0-a

Fertig.

Gruß Sabine


als Antwort auf: [#206142]
(Dieser Beitrag wurde von SabineP am 20. Jan 2006, 19:43 geändert)

Anhang:
Pythagoras.gif (1.99 KB)

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

21. Jan 2006, 12:20
Beitrag # 6 von 12
Beitrag ID: #206201
Bewertung:
(7682 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey, Sabine,

super vielen Dank für Deine ausführliche Antwort.
Ich kann mich noch ganz dunkel erinnern, da war doch mal was.
Ah, ja. Der Mathe-Unterricht.

Gruß
Christoph


als Antwort auf: [#206170]

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

21. Jan 2006, 12:42
Beitrag # 7 von 12
Beitrag ID: #206205
Bewertung:
(7679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich bins nochmal,

folgendes Problem tritt noch auf:

$command = "convert karte.png";
$command .=" -fill red -draw 'circle $x,$y $x1,$y1'";
$command .=" -quality 30% neu2.png";

hiermit erzeuge ich ein neues Bild neu2.png sobald man auf die Karte (karte.png)
klickt. Die Koordinaten hole ich so:

<form action='karte.php' method='get'>
<a href="karte.php"><input type="image" name="karte" src="karte.png" alt="" border="0" /></a>
<input type="hidden" name="submit" value="1">
</form>

Anschliessend wird das Ergebnis einfach so angezeigt:
<img src="neu2.png" alt="" border="0" />

Nun wird aber nie das aktuelle Bild neu2.png angezeigt, erst nach einem Refresh
des Browser.

Zum Nachvollziehen bitte hier lang:
http://www.cwe24.com/karte/karte.php

Danke
Christoph


als Antwort auf: [#206201]

Landkarte mit ImageMagick

SabineP
Beiträge gesamt: 7586

21. Jan 2006, 13:17
Beitrag # 8 von 12
Beitrag ID: #206207
Bewertung:
(7675 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

da ist noch ein Fehler im HTML-Code, so ist es richtig:

<form action='karte.php' method='get'>
<input type="image" name="karte" src="karte.png" alt="">
<input type="hidden" name="filled" value="1">
</form>

Gruß Sabine


als Antwort auf: [#206205]

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

21. Jan 2006, 13:25
Beitrag # 9 von 12
Beitrag ID: #206208
Bewertung:
(7672 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine,

stimmt, den a href brauch ich ja garnicht.

Was mach ich denn mit der "nachhinkenden" Bildanzeige?

Gruß Christoph


als Antwort auf: [#206207]

Landkarte mit ImageMagick

SabineP
Beiträge gesamt: 7586

21. Jan 2006, 14:02
Beitrag # 10 von 12
Beitrag ID: #206209
Bewertung:
(7667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
>> Was mach ich denn mit der "nachhinkenden" Bildanzeige?

Das Formular mit Post senden (ungetestet)

oder

einen Parameter anhängen mit einer Zufallszahl (evt. den Timestamp)
karte.php?Zufallszahl&amp;andere=Parameter usw.

oder

den Header des Bildes manipulieren mit Einträgen in der .htaccess
Da muß ich aber erst in der Apache-Dokumentation nachlesen,
wie man das genau anstellt.
Es gibt da verschiedene Möglichkeiten.
z.B.
http://httpd.apache.org/...he.html#cachedisable

Gruß Sabine


als Antwort auf: [#206208]

Landkarte mit ImageMagick

cwenet
Beiträge gesamt: 1117

21. Jan 2006, 14:43
Beitrag # 11 von 12
Beitrag ID: #206214
Bewertung:
(7661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, vielen Dank Sabine,

werde das Ganze irgendwie hinbekommen. Die Kartenpflege
findet eh im Admin-Bereich statt. D.h. der Besucher löst garkeine Bildbearbeitung
aus. Er bekommt das fertige Bild geliefert.

Vielen Dank nochmal. Die Markierung der Karte funktioniert nun, so, wie ich es
mir vorgestellt hatte. Es gab zwar noch die Lösung, die Markierungen jeweils in
einen Layer zu packen, aber die unterschiedliche Browserreaktion wollte ich nicht in Kauf nehmen.

Gruß
Christoph


als Antwort auf: [#206209]

Landkarte mit ImageMagick

SabineP
Beiträge gesamt: 7586

21. Jan 2006, 14:47
Beitrag # 12 von 12
Beitrag ID: #206215
Bewertung:
(7660 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moment, das Apache-Modul aus dem letzten Beitrag ist erst experimentell.
Mit dem Modul mod_expires kann man das Verhalten des Browser-Caches steuern

Dokumentation für Apache 2
http://httpd.apache.org/...mod/mod_expires.html

Dokumentation für Apache 1.3
http://httpd.apache.org/...mod/mod_expires.html

Gruß Sabine


als Antwort auf: [#206209]
X