GMap.NET Control Route berechnen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von progThis.

    GMap.NET Control Route berechnen

    Hallo,

    ich möchte das eine Route in GMap.NET berechnet wird.TextBox1 soll den Startpunkt und TextBox2 der Endpunkt sein.Dann soll wenn man auf Button1 klickt die Route berechnet werden.Kennt jemand den Code dafür ???


    Gruß progThis :)
    You’ll notice that the map provider (Google, in this case) provides the GetRoute method that we need to create a MapRoute instance. You could use a different mapping provider (BingMapProvider, for instance) to create the route, and use it with yet another provider for the actual map images. After all, it all boils down to latitude/longitude coordinates.


    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim r As New GMapRoute(route.Points, "My route")
    Ich bekomme noch immer den Fehler:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim start As New PointLatLng(-25.974134, 32.593042)
    3. Dim [end] As New PointLatLng(-25.959048, 32.592827)
    4. Dim route As MapRoute = GMap.NET.MapProviders.BingMapProvider.Instance.GetRoute(start, [end], False, False, 15) 'Da soll ein Fehler drin sein
    5. Dim r As New GMapRoute(route.Points, "My route")
    6. End Sub


    ?( ?( ?( ?( ?( ?( ?( ?( ?( ?( ?( ?( ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „progThis“ ()

    Der komplette Code:

    VB.NET-Quellcode

    1. Imports GMap.NET.MapProviders
    2. Imports GMap.NET.MapProviders.BingMapProvider
    3. Imports GMap.NET
    4. Imports GMap.NET.MapRoute
    5. Imports GMap.NET.WindowsForms.Markers
    6. Imports GMap.NET.WindowsForms.ToolTips
    7. Imports System.IO
    8. Imports System.Runtime.Serialization
    9. Imports GMap.NET.WindowsForms
    10. Imports GMap.NET.CacheProviders
    11. Imports GMap.NET.GMaps
    12. Imports GMap.NET.WindowsForms.GMapOverlay
    13. Imports GMap.NET.WindowsForms.GMapControl
    14. Imports GMap.NET.CacheProviders.MsSQLPureImageCache
    15. Public Class Route_berechnen
    16. Private Sub Route_berechnen_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    17. GMapControl1.MapProvider = GMapProviders.BingMap
    18. GMapControl1.SetCurrentPositionByKeywords("Deutschland")
    19. GMapControl1.MinZoom = 3
    20. GMapControl1.MaxZoom = 17
    21. GMapControl1.Zoom = 5
    22. GMapControl1.Manager.Mode = AccessMode.ServerAndCache
    23. End Sub
    24. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    25. Dim start As New String(TextBox1.Text)
    26. Dim [end] As New String(TextBox2.Text)
    27. Dim route As MapRoute = GMap.NET.MapProviders.BingMapProvider.Instance.GetRoute(start, [end], False, False, 15)
    28. Dim r As New GMapRoute(route.Points, "My route")
    29. Dim routesOverlay As GMapOverlay
    30. routesOverlay.Routes.Add(r)
    31. GMapControl1.Overlays.Add(routesOverlay)
    32. r.Stroke.Width = 2
    33. r.Stroke.Color = Color.SeaGreen
    34. End Sub
    35. End Class
    Jap:

    VB.NET-Quellcode

    1. Imports GMap.NET.MapProviders
    2. Imports GMap.NET.MapProviders.BingMapProvider
    3. Imports GMap.NET
    4. Imports GMap.NET.MapRoute
    5. Imports GMap.NET.WindowsForms.Markers
    6. Imports GMap.NET.WindowsForms.ToolTips
    7. Imports System.IO
    8. Imports System.Runtime.Serialization
    9. Imports GMap.NET.WindowsForms
    10. Imports GMap.NET.CacheProviders
    11. Imports GMap.NET.GMaps
    12. Imports GMap.NET.WindowsForms.GMapOverlay
    13. Imports GMap.NET.WindowsForms.GMapControl
    14. Imports GMap.NET.CacheProviders.MsSQLPureImageCache
    15. Public Class Route_berechnen
    16. Private Sub Route_berechnen_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    17. GMapControl1.MapProvider = GMapProviders.BingMap
    18. GMapControl1.SetCurrentPositionByKeywords("Deutschland")
    19. GMapControl1.MinZoom = 3
    20. GMapControl1.MaxZoom = 17
    21. GMapControl1.Zoom = 5
    22. GMapControl1.Manager.Mode = AccessMode.ServerAndCache
    23. End Sub
    24. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    25. Dim start As New String(TextBox1.Text)
    26. Dim [end] As New String(TextBox2.Text)
    27. Dim route As MapRoute = GMap.NET.MapProviders.GoogleMapProvider.Instance.GetRoute(start, [end], False, False, 15)
    28. Dim r As New GMapRoute(route.Points, "My route")
    29. Dim routesOverlay As GMapOverlay
    30. routesOverlay.Routes.Add(r)
    31. GMapControl1.Overlays.Add(routesOverlay)
    32. r.Stroke.Width = 2
    33. r.Stroke.Color = Color.SeaGreen
    34. End Sub
    35. End Class
    Hallo,

    Ich bin nicht ganz im Thema aber scheinbar unterstützt der BingNetProvieder "getRoute" nicht. Versuch mal "GetRouteBetweenPoints" zusammen mit dem googleMapProvieder

    VB.NET-Quellcode

    1. Dim route As MapRoute =googleMapProvider.Instance.GetRouteBetweenPoints(start, [end], False, False,15)


    Importieren des GoogleProvieders nicht vergessen:

    VB.NET-Quellcode

    1. Imports GMap.NET.MapProviders.GoogleMapProvider


    Info: der BingProvieder scheint "GetRouteBetweenPoints" ebenfalls nicht zu unterstützen... Konnte jedenfalls nichts vernünftiges finden.

    Eine Frage, bekommst du nicht ein Problem mit einer NullReferenceException in Zeile 32

    viele Grüße
    Es funktioniert :00000 :)

    Nur das Problem in Zeile 32 hast recht :)
    Da ist dann auch eine neue Frage :/ Wie kann ich das beheben hab ja alles befolgt ???? ?(

    Mein jetziger Code:

    VB.NET-Quellcode

    1. Imports GMap.NET.MapProviders
    2. Imports GMap.NET.MapProviders.BingMapProvider
    3. Imports GMap.NET
    4. Imports GMap.NET.MapRoute
    5. Imports GMap.NET.WindowsForms.Markers
    6. Imports GMap.NET.WindowsForms.ToolTips
    7. Imports System.IO
    8. Imports System.Runtime.Serialization
    9. Imports GMap.NET.WindowsForms
    10. Imports GMap.NET.CacheProviders
    11. Imports GMap.NET.GMaps
    12. Imports GMap.NET.WindowsForms.GMapOverlay
    13. Imports GMap.NET.MapProviders.GoogleMapProvider
    14. Imports GMap.NET.WindowsForms.GMapControl
    15. Imports GMap.NET.CacheProviders.MsSQLPureImageCache
    16. Imports GMap.NET.Internals
    17. Imports GMap.NET.metadataType
    18. Imports GMap.NET.Placemark
    19. Imports GMap.NET.WindowsForms.GMapRoute
    20. Public Class Route_berechnen
    21. Private Sub Route_berechnen_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    22. GMapControl1.MapProvider = GMapProviders.GoogleMap
    23. GMapControl1.SetCurrentPositionByKeywords("Deutschland")
    24. GMapControl1.MinZoom = 3
    25. GMapControl1.MaxZoom = 17
    26. GMapControl1.Zoom = 5
    27. GMapControl1.Manager.Mode = AccessMode.ServerAndCache
    28. End Sub
    29. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    30. Dim start As New String(TextBox1.Text)
    31. Dim [end] As New String(TextBox2.Text)
    32. Dim route As MapRoute = GoogleMapProvider.Instance.GetRouteBetweenPoints(start, [end], False, False, 15)
    33. Dim r As New GMapRoute(route.Points, "My route")
    34. Dim routesOverlay As GMapOverlay
    35. routesOverlay.Routes.Add(r)
    36. GMapControl1.Overlays.Add(routesOverlay)
    37. r.Stroke.Width = 2
    38. r.Stroke.Color = Color.SeaGreen
    39. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „progThis“ ()

    Hallo,

    versuch mal folgendes:

    VB.NET-Quellcode

    1. 'muss als New deklariert werden da sonst zur Laufzeite eine NullReferenceExzeption hervorgerufen wird
    2. Dim routesOverlay As New GMapOverlay(GMapControl1, "OverLay1")
    3. 'Löscht die vorhandenen Overlays, ist jedoch KEIN muss!!!
    4. GMapControl1.Overlays.Clear()
    5. routesOverlay.Routes.Add(r)
    6. GMapControl1.Overlays.Add(routesOverlay)

    Ich hoffe es hilft...

    viele Grüße