![]() |
ImageMaps mit Delphi
Ich hoffe, dies ist das richtige Forum (hat ja irgendwie mit Grafik zu tun).
Zur Aufgabenstellung: Es existiert eine Landkarte des hiesigen Landkreises. Diese Karte verfügt über gewisse Bereiche, zu denen es wieder Detailkarten in größerem Maßstab gibt. Wird auf einen dieser Bereiche geklickt, soll sich die entsprechende Detailkarte öffnen. Mein erster Gedanke war, dies mittels HTML und ![]() Hier mein bisheriger Gedankengang: - Definition einer Klasse für den Detailbereich. Eigenschaften sind dessen Dimensionen prozentual zur Gesamtkarte sowie absolut in Pixeln und der zugeordnete Dateiname (evtl. später ein paar weitere) - Definition einer Listenklasse zur Verwaltung der Detailobjekte - bei Größenänderung der Übersichtskarte werden die Abmessungen der Detailbereiche neu berechnet - Speicherung der Daten in einer Embedded-Firebird-DB Würdet Ihr das auch so handhaben, oder hat jemand Verbesserungsvorschläge? Ich habe keine Lust, alles auszugestalten, um dann hinterher festzustellen, dass mein Konzept nichts taugt, bin daher für jede Anregung dankbar. |
Re: ImageMaps mit Delphi
Moin,
ich hatte mal ein ähnliches Problem. Es ging darum, ein PDF-Dokument in einem Formular anzuzeigen, und Formularfelder (Buttons, Textfelder, Checkboxen etc.) an bestimmten Positionen zu erzeugen. Die Analogie zu Deinem Problem besteht darin, dass ich auf eine Größenänderung des PDF-Formulars reagieren musste; die Controls mussten 'mitwachsen'. Und das habe ich exakt so gelöst, wie von Dir beschrieben, was auch sehr gut funktioniert hat. Aber: Bei meinen Formularfeldern handelte es sich um gleichförmige Objekte, die ich beliebig in der Größe verändern konnte, und die einen Fixpunkt hatten (oben links), der sich stets an der gleichen Position im Formular befand. Die Größenänderung erfolgt ja nur von unten rechts aus gesehen. Die Frage ist, ob sich das bei Deinen 'unförmigen' Bereichen ebenso lösen lässt. Denn es geht ja nicht nur um die Größe, sondern auch um die Position innerhalb des Gesamtbildes. In was für einer Umgebung soll das Ganze denn laufen. In einer Win32-Anwendung? In einer Html-Seite? Ein anderer Vorschlag wären Farben gewesen; also z.B: unterschiedliche Weißabstufungen, die sich in dem Bild befinden (als Hintergrund), die dem menschl. Auge nicht auffallen, die man aber programmseitig ermitteln, und anhand derer man dann die Bereiche dann identifizieren kann. Für Alternativlösungen gibst Du zu wenig Infos ;) |
Re: ImageMaps mit Delphi
Hi, Danke für die Antwort, ich scheine also auf dem richtigen Weg zu sein. Die Umgebung wird wahrscheinlich eine reine Win32-Anwendung werden. Leider kann ich die Karte hier nicht einstellen, da es sich um urheberrechtlich geschütztes Material handelt und ich sie selbst erst ein einziges Mal gesehen habe. Die angesprochenen Bereiche sind allerdings durchgängig rechteckig, so dass ich mir nur 2 Koordinaten je Bereich merken muss. Nach dem, was ich bei einem ersten Blick auf die Karte sehen konnte, sind diese Rechtecke sogar alle gleich groß und direkt nebeneinander, so dass ich mir später im Laufe des Projekts sogar eine Art Scanlösung einfallen lassen könnte, um diese Koordinaten automatisiert zu bestimmen.
|
Re: ImageMaps mit Delphi
Keine weiteren Vorschläge?
|
Re: ImageMaps mit Delphi
denke, kommt auf den aufwand an und auf deine datenherkunft. wenn du alle koordinaten in reichweite hast, kannst es ja problemlos skalieren, da du weisst, wo sich die punkte befinden... oder z.b. via openGL skalieren lassen. im zweiten fall hast du nur ein problem, wenn jemand auf einen bestimmten punkt klickt, den musst dann selektieren um in die details verzweigen zu können.
würd das ggf. über imagemaps lösen, wobei bestimmte geographische zonen vordefiniert sind... und beim klick du dann einfach die detailsicht aufblendest... |
Re: ImageMaps mit Delphi
Zitat:
|
Re: ImageMaps mit Delphi
Ich erkläre nochmal die Anfrage, wie sie an mich selbst herangetragen wurde: Es gibt eine Übersichtskarte des hiesigen Landkreises. Diese Karte ist nach einer ersten Sichtung in gleich große Rechtecke unterteilt. So etwa 150 dieser Rechtecke sind besonders markiert (durch rote Umrandung und Überschrift), zu diesen gibt es Detailkarten mit Wanderwegen etc. Die Übersichtskarte ist wohl mit einem A3-Scanner eingescannt worden, die Abmessungen waren jedenfalls riesig (so in etwa 3500 * 4500 Pixel). Nun soll sich lediglich bei Klick auf einen dieser Bereiche die entsprechende Detailkarte öffnen. Die Frage ist nun nicht, ob das machbar ist, sondern wie ich das am Besten realisieren könnte, wenn der Auftrag tatsächlich erteilt werden sollte. Die Skalierbarkeit ist auf meinem eigenen Mist gewachsen (man will ja immer einen Schritt weiter denken, da es der Auftraggeber ja meist nicht tut).
|
Re: ImageMaps mit Delphi
dann würd ich das zoomen bleiben lassen. nimm einfach die jeweiligen koordinaten (in html oder auf den schirm) und bei klick darin, hole die nächste detailkarte raus und zeige sie an. z.b. mit imagemap und dem browser
|
Re: ImageMaps mit Delphi
Gut, aber dann müsste man trotzdem erstmal die Koordinaten ermitteln und daraus dann die Areas erstellen.
|
Re: ImageMaps mit Delphi
Hast Du Dir schon
![]() Zumindest in der Beispielanwendung lässt sich das Bitmap zoomen - und die Regionen wachsen mit. Ob es für Deinen Anwendungsfall das Richtige ist, weiß ich nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz