Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » Datenansichten » WklMap

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; Key ist der Wert von KeyField.
  • 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) oder Extent = "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, VisibleExtent in ExtentChanged speichern und beim Öffnen des Formulars als Extent setzen.
  • 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: RowsWithoutPosition nach DataLoaded.

Schaubild

+- WklMap -------------------------------------------------------+
|                         Anmeldungen                            | 1
|        ____________________________________________            |
|      /    .-~~-.          __    ___                   \        | 2
|     |    (      )   .   (  )o (   )   .-~~~-.           |       |
|     |     `-..-'      O  `-'  ( (  ))  (       )         |      | 3
|     |        \       o     (    )      `-...-'    o     |       | 4
|      \        )                                        /        |
|        `-------------------------------------------'          |
+----------------------------------------------------------------+
BereichBedeutung
1Title
2Der Rand der Welt in der Equal-Earth-Projektion
3Ein Punkt mit großem Wert: größere Fläche, Farbe nahe MaxColor
4Ein 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 LinkMasterFields und LinkChildFields; 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 MinColor nach MaxColor über, auf Wunsch über MidColor. 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 AllowZoom zoomt 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

ElementBedeutung
RecordSourceTabelle, Abfrage oder SQL-Anweisung.
LatitudeField, LongitudeFieldGrad Nord (-90 bis 90) und Ost (-180 bis 180).
ValueFieldBestimmt die Fläche und, ohne ColorField, die Farbe; leer für gleich große Punkte.
CaptionField, KeyFieldBeschriftung in der QuickInfo und für Sprachausgaben; Schlüssel, den PointClick meldet (leer: die Zeilennummer).
Title, ValueFormatTitel über der Karte; .NET-Zahlenformat des Werts in der QuickInfo, zum Beispiel #,##0.
MinPointSize, MaxPointSizeDurchmesser in Punkt (1/72 Zoll): 2 bis 72 (Standardwert 5) und 2 bis 144 (Standardwert 30).
MinColor, MidColor, MaxColorFarben des kleinsten, mittleren und größten Werts; MidColor = -1 (Standardwert) für einen geraden Übergang.
ShowBordersLandesgrenzen (standardmäßig an).
Extentworld (Standardwert), auto (die Punkte) oder West,Süd,Ost,Nord in Grad mit Dezimalpunkt.
VisibleExtentDer jetzt sichtbare Ausschnitt nach dem Zoom des Benutzers; nur lesbar.
AllowZoomZoomen und Verschieben durch den Benutzer in der Formularansicht (standardmäßig aus).
ColorField, ColorRange, ColorFormatFeld des Farbwerts (leer: ValueField); fester Bereich unten,oben (leer: die geladenen Werte); sein Format in der QuickInfo.
LinkMasterFields, LinkChildFieldsFelder oder Steuerelemente des Formulars und die passenden Felder der Daten, durch Semikolon getrennt.
RequeryLiest die Daten neu.
PointCount, RowsWithoutPosition, LastError, MapSourceNur lesbar; MapSource nennt den gerade gezeichneten Datensatz.
ColorSchemeWie bei den übrigen Komponenten.
EreignisWann
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.
de/wiki/msaccess/comctl/data-views/map/start.txt · Zuletzt geändert: von Wolfgang van der Stille