Platforms to show: All Mac Windows Linux Cross-Platform
/MacFrameworks/MapKit/MapKit Route
Required plugins for this example: MBS MacFrameworks Plugin, MBS MacCF Plugin, MBS MacBase Plugin, MBS MacCG Plugin, MBS Main Plugin
Last modified Sat, 1st Nov 2019.
You find this example project in your MBS Xojo Plugin download as a Xojo project file within the examples folder: /MacFrameworks/MapKit/MapKit Route
Download this example: MapKit Route.zip
Project "MapKit Route.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
EventHandler Sub ExpandRow(row As Integer)
dim item as Variant = me.RowTag(row)
if item isa MKRouteMBS then
dim route as MKRouteMBS = item
dim steps() as MKRouteStepMBS = route.steps
for each RouteStep as MKRouteStepMBS in steps
dim a as string = RouteStep.notice
if a.len > 0 then
a = " ("+a+")"
end if
List.AddRow RouteStep.instructions+a
next
end if
End EventHandler
End Control
EventHandler Sub Open()
// you can use Map Items for current location, local search results or generate some
// take some coordinates
dim c1 as new CLLocationCoordinate2DMBS(52.518611, 13.408333) // Berlin
dim c2 as new CLLocationCoordinate2DMBS(48.137222, 11.575556) // Munich
dim p1 as new MKPlacemarkMBS(c1)
dim p2 as new MKPlacemarkMBS(c2)
dim i1 as new MKMapItemMBS(p1)
dim i2 as new MKMapItemMBS(p2)
dim request as new MKDirectionsRequestMBS
request.transportType = request.TransportTypeAutomobile
request.source = i1
request.destination = i2
request.requestsAlternateRoutes = true
Directions = new MKDirections(request)
Directions.list = list
Directions.calculateDirections
End EventHandler
Property Directions As MKDirections
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class MKDirections Inherits MKDirectionsMBS
EventHandler Sub calculateDirectionsCompleted(response as MKDirectionsResponseMBS, error as NSErrorMBS, tag as Variant)
list.DeleteAllRows
if error <> nil then
MsgBox error.LocalizedDescription
end if
if response <> nil then
dim routes() as MKRouteMBS = response.routes
for each route as MKRouteMBS in routes
dim a as string = join(route.advisoryNotices, ", ")
if a.len > 0 then
a = " ("+a+")"
end if
list.AddFolder route.name+" with "+str(route.expectedTravelTime/60)+" minutes"+a
list.RowTag(list.LastIndex) = route
next
end if
End EventHandler
Property list As listbox
End Class
End Project
See also:
- /MacFrameworks/MapKit/MapKit Custom Icons example
- /MacFrameworks/MapKit/MapKit Custom Image
- /MacFrameworks/MapKit/MapKit iOS
- /MacFrameworks/MapKit/MapKit Local Search
- /MacFrameworks/MapKit/MapKit Test
Download this example: MapKit Route.zip
The items on this page are in the following plugins: MBS MacFrameworks Plugin.