WklMap
WklMap zeigt auf einem Access-Formular, wo etwas geschieht: Anmeldungen je Stadt, Standorte oder
Kunden als Punkte auf einer Weltkarte. Jeder Datensatz mit geografischer Breite und Länge wird zu
einem Punkt, dessen Fläche und Farbe für einen Wert stehen. Wie ein Unterformular folgt die Karte
über LinkMasterFields und LinkChildFields dem aktuellen Datensatz des Formulars. Die Kartendaten
sind in die Komponente eingebaut: Die Karte funktioniert offline und in abgeschlossenen Netzen und
teilt keinem Kartendienst mit, was der Benutzer gerade ansieht.
Seit Release 1.63.0; Kartenausschnitt, Zoom und ein eigenes Farbfeld seit 1.68.1.
Erste Schritte
Setzen Sie das Steuerelement auf ein Formular (Formularentwurf › Steuerelemente ›
ActiveX-Steuerelemente › WKL Map) und legen Sie die Daten im Eigenschaftenblatt oder in
Form_Load fest:
Private Sub Form_Load()
With Me!Map1.Object
.RecordSource = "qryAnmeldungenJeOrt"
.LatitudeField = "Breite": .LongitudeField = "Laenge"
.ValueField = "Anzahl": .CaptionField = "Ort": .KeyField = "OrtID"
End With
End Sub
Häufige Aufgaben
- Anmeldungen des gewählten Kunden je Ort zeigen:
RecordSource= die Anmeldungen je Ort mit ihren Koordinaten,LinkMasterFields= der Kundenschlüssel im Formular,LinkChildFields= der Kundenschlüssel in den Daten. - Bei Klick die Einzelheiten eines Orts öffnen:
PointClick(Key, Value)behandeln;Keyist der Wert vonKeyField. - Werte als Ampel zeigen:
MinColor = RGB(0, 160, 0),MidColor = RGB(255, 200, 0),MaxColor = RGB(200, 0, 0). - Eine Region statt der Welt zeigen:
Extent = "5.5,45,17.5,55.5"(West, Süd, Ost, Nord in Grad, mit Dezimalpunkt) oderExtent = "auto", damit der Ausschnitt die Punkte umfasst. - Den Benutzer selbst navigieren lassen:
AllowZoom = True. Soll die Karte beim nächsten Öffnen wieder denselben Ausschnitt zeigen,VisibleExtentinExtentChangedspeichern und beim Öffnen des Formulars alsExtentsetzen. - Einen zweiten Wert als Farbe zeigen, etwa den Anteil fehlgeschlagener Anmeldungen:
ColorField = "AnteilFehler",ColorRange = "0,1",ColorFormat = "0%". - Landesgrenzen weglassen, etwa für Kunden in Regionen mit umstrittenen Grenzen:
ShowBorders = False. - Zeilen finden, die nicht platziert werden konnten:
RowsWithoutPositionnachDataLoaded.
Schaubild
+- WklMap -------------------------------------------------------+ | Anmeldungen | 1 | ____________________________________________ | | / .-~~-. __ ___ \ | 2 | | ( ) . ( )o ( ) .-~~~-. | | | | `-..-' O `-' ( ( )) ( ) | | 3 | | \ o ( ) `-...-' o | | 4 | \ ) / | | `-------------------------------------------' | +----------------------------------------------------------------+
| Bereich | Bedeutung |
|---|---|
| 1 | Title |
| 2 | Der Rand der Welt in der Equal-Earth-Projektion |
| 3 | Ein Punkt mit großem Wert: größere Fläche, Farbe nahe MaxColor |
| 4 | Ein Punkt mit kleinem Wert: kleinere Fläche, Farbe nahe MinColor, über größeren Punkten gezeichnet |
Wichtige Funktionen
- Datenbindung an eine Tabelle, Abfrage oder SQL-Anweisung: ein Punkt je Datensatz mit Breite und Länge in Grad, dazu optional Wert, Beschriftung und Schlüssel.
- Folgt dem Formular wie ein Unterformular über
LinkMasterFieldsundLinkChildFields; wechselt der Hauptdatensatz, liest die Karte ihre Daten neu. - Fläche und Farbe aus dem Wert: Die Fläche eines Punkts ist proportional zu seinem Wert, die Farbe geht von
MinColornachMaxColorüber, auf Wunsch überMidColor. Die Farbe kann auch aus einem zweiten Feld kommen, mit dem Bereich der geladenen Werte oder einem festen Bereich. - Ausschnitt und Zoom: die Welt, die Punkte oder eine Region in Grad; mit
AllowZoomzoomt der Benutzer mit Mausrad und Tastatur und verschiebt die Karte durch Ziehen. Eine Region wird mit feineren Grenzen gezeichnet (Natural Earth, Maßstab 1:50 Mio.). - Kein Kartendienst: Die Länder stammen aus Natural Earth (gemeinfrei) und sind in die Komponente eingebaut; die Karte braucht keine Internetverbindung.
- Überall dasselbe Bild: Formularansicht, Entwurfsansicht (mit Beispielpunkten), Seitenansicht und Berichte.
- Für alle lesbar: QuickInfo mit Beschriftung und Wert, eine Liste der Punkte für Sprachausgaben (größter Wert zuerst) und dieselben Farbschemas wie die übrigen Komponenten, einschließlich Kontrastmodus.
Grundkonzepte
Flächen sind maßstabsgetreu. Die Karte verwendet die Equal-Earth-Projektion (Šavrič, Patterson,
Jenny, 2018), die Flächenverhältnisse erhält. Ein Punkt in Norwegen und einer in Kenia lassen sich
fair vergleichen; eine rechteckige Karte würde zu den Polen hin verzerren. Die Fläche eines Punkts
wächst mit seinem Wert: der vierfache Wert ergibt den doppelten Durchmesser. Der größte Wert erhält
MaxPointSize; kein Punkt ist kleiner als MinPointSize, damit jeder Punkt sichtbar und anklickbar
bleibt.
Kleine Punkte bleiben sichtbar. Große Punkte werden zuerst gezeichnet, kleine darüber. Ein Klick trifft den Punkt, der obenauf liegt.
Eine falsche Position verdeckt die Karte nicht. Eine Zeile, deren Breite oder Länge fehlt, keine
Zahl ist oder außerhalb des Bereichs liegt, wird nicht gezeichnet, sondern in RowsWithoutPosition
gezählt. Breite 0 mit Länge 0 ist ein echter Ort (im Golf von Guinea) und wird gezeichnet; speichern
Sie für eine unbekannte Position Null.
Grenzen sind eine Aussage. Die Landesgrenzen folgen der Sicht von Natural Earth auf die
tatsächlichen Verhältnisse, umstrittene Gebiete eingeschlossen. Darf Ihre Anwendung keine Grenzen
zeigen, setzen Sie ShowBorders = False; das Land wird dann in einem Stück gezeichnet. Die Welt
wird im Maßstab 1:110 Mio. gezeichnet, ein Kontinent, ein Land oder eine Region in 1:50 Mio.
Sehr kleine Inselstaaten sind auch dann winzig oder fehlen; ein Punkt wird deshalb immer an seinen
eigenen Koordinaten gezeichnet und nie auf ein Land verschoben.
Der Zoom des Benutzers ist eine Ansicht, keine Einstellung. Extent legt fest, was das
Formular zeigt; der Zoom des Benutzers ändert nur das Fenster und wird nicht gespeichert. Er bleibt
erhalten, wenn die Daten neu gelesen werden (Requery, anderer Hauptdatensatz), damit der Benutzer
seine Region nicht verliert, und endet, sobald Code Extent setzt. Berichte und die Seitenansicht
zeigen immer Extent. Extent verwendet unabhängig von den Ländereinstellungen einen
Dezimalpunkt und überschreitet nie den 180. Längengrad, den linken und rechten Rand der Karte.
Fehler werden angezeigt, nicht ausgelöst. Die Karte liest ihre Daten selbstständig (beim Öffnen
des Formulars und beim Wechsel des Hauptdatensatzes), außerhalb jedes VBA-Aufrufs, der einen Fehler
abfangen könnte. Ein Lesefehler erscheint in der Karte, steht in LastError und wird über
DataLoaded gemeldet.
Schnittstelle
| Element | Bedeutung |
|---|---|
RecordSource | Tabelle, Abfrage oder SQL-Anweisung. |
LatitudeField, LongitudeField | Grad Nord (-90 bis 90) und Ost (-180 bis 180). |
ValueField | Bestimmt die Fläche und, ohne ColorField, die Farbe; leer für gleich große Punkte. |
CaptionField, KeyField | Beschriftung in der QuickInfo und für Sprachausgaben; Schlüssel, den PointClick meldet (leer: die Zeilennummer). |
Title, ValueFormat | Titel über der Karte; .NET-Zahlenformat des Werts in der QuickInfo, zum Beispiel #,##0. |
MinPointSize, MaxPointSize | Durchmesser in Punkt (1/72 Zoll): 2 bis 72 (Standardwert 5) und 2 bis 144 (Standardwert 30). |
MinColor, MidColor, MaxColor | Farben des kleinsten, mittleren und größten Werts; MidColor = -1 (Standardwert) für einen geraden Übergang. |
ShowBorders | Landesgrenzen (standardmäßig an). |
Extent | world (Standardwert), auto (die Punkte) oder West,Süd,Ost,Nord in Grad mit Dezimalpunkt. |
VisibleExtent | Der jetzt sichtbare Ausschnitt nach dem Zoom des Benutzers; nur lesbar. |
AllowZoom | Zoomen und Verschieben durch den Benutzer in der Formularansicht (standardmäßig aus). |
ColorField, ColorRange, ColorFormat | Feld des Farbwerts (leer: ValueField); fester Bereich unten,oben (leer: die geladenen Werte); sein Format in der QuickInfo. |
LinkMasterFields, LinkChildFields | Felder oder Steuerelemente des Formulars und die passenden Felder der Daten, durch Semikolon getrennt. |
Requery | Liest die Daten neu. |
PointCount, RowsWithoutPosition, LastError, MapSource | Nur lesbar; MapSource nennt den gerade gezeichneten Datensatz. |
ColorScheme | Wie bei den übrigen Komponenten. |
| Ereignis | Wann |
|---|---|
PointClick(Key, Value) | Klick auf einen Punkt. |
DataLoaded(Points) | Die Daten wurden gelesen, auch nach einem Fehler (siehe LastError). |
ExtentChanged(Extent) | Der Benutzer hat gezoomt oder verschoben; Extent ist der jetzt sichtbare Ausschnitt. |
Administration
Fehlerbehebung
Bisher keine Einträge.
Für Entwickler
Verwandte Themen
- WklChart: Werte über die Zeit oder je Kategorie, wo die Karte sie nach Ort zeigt.