GmapControl Maus auf Markerposition (Hover) setzen lassen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    GmapControl Maus auf Markerposition (Hover) setzen lassen

    Hallo! Ich verwende das Gmapcontrol!
    Mit folgendem Code setze ich einen Marker auf der Karte:

    VB.NET-Quellcode

    1. Dim top As New GMap.NET.WindowsForms.GMapOverlay(GMapControl1, "top")
    2. GMapControl1.Overlays.Add(top)
    3. Dim x As Double
    4. Dim y As Double
    5. Dim point As PointLatLng
    6. point.Lat = txtlat.Text
    7. point.Lng = txtlong.Text
    8. x = GMapControl1.FromLatLngToLocal(point).X
    9. y = GMapControl1.FromLatLngToLocal(point).Y
    10. Dim m As New GMapMarkerGoogleRed(GMapControl1.FromLocalToLatLng(x, y))
    11. Dim lat As Double = GMapControl1.Position.Lat
    12. Dim lng As Double = GMapControl1.Position.Lng
    13. top.Markers.Add(m)
    14. GMapControl1.Position = New PointLatLng(lat, lng)
    15. GMapControl1.ZoomAndCenterMarkers("top")


    Das wird auch schön gemacht. Im oberen Code sieht man das mit folgendem Code:

    VB.NET-Quellcode

    1. GMapControl1.ZoomAndCenterMarkers("top")
    Die Karte Zentriert wird sodas der Marker mittig Karte ist.

    Nach dieser Codezeile (Marker mittig setzen) ist der Mauszeiger nicht mehr auf dem Marker, das möchte ich aber gerne so haben.

    Hat jemand eine Ahnung wie ich den Mauszeige anschließend genau auf den Marker platzieren lassen kann?
    Mit ein wenig Koordinatentransformation.
    Verfügst Du über die folgende Information:
    (x=0, y=0) bei Pixel (x0, y0) in Deiner Darstellung?
    Spreizung:
    Bildbreite = n1 Kilometer (oder Nanometer) UND Bildbreite = m1 Pixel,
    Bildhöhe = n2 Kilometer (oder Nanometer) UND Bildhöhe = m2 Pixel
    :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Mit ein wenig Koordinatentransformation.
    Verfügst Du über die folgende Information:
    (x=0, y=0) bei Pixel (x0, y0) in Deiner Darstellung?
    Spreizung:
    Bildbreite = n1 Kilometer (oder Nanometer) UND Bildbreite = m1 Pixel,
    Bildhöhe = n2 Kilometer (oder Nanometer) UND Bildhöhe = m2 Pixel
    :?:



    Hmmm aber was ist wenn sich die größe des Controls ändert? Habs nämlich so eingestellt das wenn der User die Formgröße ändert sich das Gmapcontrol automatisch mit vergrößert - dann passt ja die Größe nicht mehr!?


    :S

    vierkant schrieb:

    automatisch mit vergrößert
    Ja und? Dann ändert sich die

    RodFromGermany schrieb:

    Bildbreite = n1 Kilometer (oder Nanometer) UND Bildbreite = m1 Pixel,
    Bildhöhe = n2 Kilometer (oder Nanometer) UND Bildhöhe = m2 Pixel
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Mit ein wenig Koordinatentransformation.
    Verfügst Du über die folgende Information:
    (x=0, y=0) bei Pixel (x0, y0) in Deiner Darstellung?
    Spreizung:
    Bildbreite = n1 Kilometer (oder Nanometer) UND Bildbreite = m1 Pixel,
    Bildhöhe = n2 Kilometer (oder Nanometer) UND Bildhöhe = m2 Pixel
    :?:



    Bitte schimpf jetzt nicht mit mir aber ich verstehe eigentlich nur Bahnhof! :(

    vierkant schrieb:

    ich verstehe eigentlich nur Bahnhof!
    Warum sollte ich mit Dir schimpfen?
    Machen must Du es, da sind wir uns einig. Wenn hier ein übereifriges Forumsmitglied Dir den Code macht, sei froh, aber Du wirst nicht glücklich, wenn Du ihn nicht verstehst, da findest Du nämlich keine Fehler. Und bei Koordinatentransformationen bist Du da mal schnell dabei.
    Stell Dir vor ein Millimeterpapier auf einer 2-dimensionalen durchsichtigen Gummi-Fläche.
    Unter dem Gummi ist die Landkarte, Zielort ist das Hofbräuhaus.
    Du legst den Gummi lose drauf und kannst sagen, bei der Spannung s1 liegt bei x0 und y0 das Hofbräuhaus.
    Dann ziehst Du an allen 4 Ecken (der Gummi möge sich nicht verzerren) und pinst sie mit Reißzwecken fest.
    Dann liegt das das Hofbräuhaus bei der Spannung s2 bei den Koordinaten x1 und y1.
    Ohne jetzt was zu rechnen: Wenn Du das verstanden hast und wenn Du es mit eigenen Worten wieder geben kannst, melde Dich wieder. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!