[AccessD] Any MapPoint programmers out there?

Michael R Mattys mmattys at rochester.rr.com
Fri Jun 3 06:45:21 CDT 2005


Paul,

I pulled this from an answer on Google
Author is Gilles Kohl (MVP)
************************
>In my custom software I need to provide driving distance and directions
>between any 2 addresses (a map would be nice too). Does MapPoint have an
API
>that I can hook into so I can integrate these features in my software?

Yes it does, no problem. And in case you won't take my word for it,
here's sample code that works with MapPoint 2001 (to prevent
word-wrapping problems, I've also attached it as a text file)

For a map, you could either use the CopyMap method of the Map object
(copies the map as a picture to the clipboard, use like so:

objMap.CopyMap
Image1.Picture = Clipboard.GetData
), or use the full-blown MapPoint ActiveX control available in
MapPoint 2002.

Hope this helps,

Regards,
Gilles.

Option Explicit

' remember to set a reference to the Microsoft MapPoint Object Library
(North American)
Dim objApp As New MapPoint.Application

Private Sub cmdCalcDistance_Click()
Dim objMap As MapPoint.Map
Dim objLocMS As MapPoint.Location
Dim objLocHRC As MapPoint.Location

' Uncomment the following line to make MapPoint visible
' objApp.Visible = True

' Get a map object
Set objMap = objApp.NewMap

' Clear the route (
objMap.ActiveRoute.Clear

'Illustrate finding a United States address
Set objLocMS = objMap.FindAddress("One Microsoft Way", "Redmond",
"Washington", "98052", geoCountryUnitedStates)
If objLocMS Is Nothing Then
MsgBox "Sorry - did not find US address"
Exit Sub
End If

' Found it OK - add to route
objMap.ActiveRoute.Waypoints.A dd objLocMS, "Microsoft"

'Illustrate finding a Canadian address
Set objLocHRC = objMap.FindAddress("4295 Blackcombe Way",
"Whistler", "British Columbia", "VON1B4", geoCountryCanada)
If objLocHRC Is Nothing Then
   MsgBox "Sorry - did not find Canadian address"
   Exit Sub
End If

' Found it OK - add to route
objMap.ActiveRoute.Waypoints.Add objLocHRC, "HRC"

' Compute route
objMap.ActiveRoute.Calculate
If objMap.ActiveRoute.IsCalculated Then
        MsgBox "The distance is " & objMap.ActiveRoute.Distance & _
        IIf(objApp.Units = geoMiles, " miles", " km")
Else
MsgBox "Sorry, could not compute route"
End If
End Sub

Michael R. Mattys
Mattys MapLib for Microsoft MapPoint
http://www.mattysconsulting.com




More information about the AccessD mailing list