Nachdem wir unsere Route nun durch Calculate() berechnet haben stellt sich die Frage wie bekomme
ich nun die Ergebnisse "raus" ?
Eine Möglichkeit ist das ausdrucken der Route :
Code: Alles auswählen
Methode objMap.Printout()
//
// Route muss vor dem Drucken "berechnet" worden sein !
//
IF ::oAXControl:ActiveMap:ActiveRoute:IsCalculated()
ELSE
::oStatus:Setcaption( "bitte warten ... Route wird berechnet" )
::oAXControl:ActiveMap:ActiveRoute:Calculate()
ENDIF
...
oApp:ButtonOK:activate := {|| ::oAXControl:ActiveMap:PrintOut(;
OutputFileName ,;
Title ,;
oApp:nCopies:getdata() ,;
oApp:nPrintArea ,;
oApp:nQuality ,;
oApp:nOrientation ,;
oApp:lCollate ,;
oApp:lLegend ,;
oApp:lOverview ,;
oApp:lFaxable ) ,;
lExit := .T. }
werden soll
Code: Alles auswählen
geoPrintMap 0
geoPrintDirections 1
geoPrintTurnByTurn 2
geoPrintStripMaps 3
geoPrintSelectedArea 4
geoPrintHighlightedPlaces 5
geoPrintFullPage 6
machen damit er nicht abstürzt ?
Eine weitere Anforderung könnte es sein die neu berechnete Route zurück in die DBF zu schreiben.
Hierzu muss man sich erstmal ansehen was MapPoint einem zurückgibt
Code: Alles auswählen
//
// wenn man die SUB-Anweisungen auch haben möchte muss man
// die "Expanded" Property setzten
//
::oAXControl:ActiveMap:ActiveRoute:Directions:SetProperty(;
"Expanded", geoTrue )
//
iMax := ::oAXControl:ActiveMap:ActiveRoute:Waypoints:count()
FOR i = 1 TO iMax
cName := ::oAXControl:ActiveMap:ActiveRoute:Waypoints:Item(i):Name
AADD(aWayPoint,cName)
DO_Sub_Routine()
NEXT
Code: Alles auswählen
Berger Vorstadt, 86609 Donauwörth
Margot-Kalinke-Straße, 80939 München
Karl-Böhm-Straße, 85598 Vaterstetten
Ledererstraße 21, 80331 München
Schwanthalerstraße 7, 80336 München
Blutenburgstraße 53, 80636 München
Pfeuferstraße 33, 81373 München
Münchnerstraße 2, 82061 Neuried
Gymnasiumstraße, 88400 Biberach an der Riss
Tja und obwohl er ja nun was gefunden hatte muss die "Schreibweise" nicht unbedingt mit unserer
DBF übereinstimmen sodass ein SEEK praktisch nicht möglich ist.
Nun habe ich "Glück" das die Kunden meistens nicht in der selben PLZ / Strasse sind sodass mit
Code: Alles auswählen
LAND+STRZERO(PLZ,5)+UPPER(SUBSTR(STRASSE,1,3))
Ab MapPoint 2006 gibt es wohl auch noch die Möglichkeit des Export zu Pocket-PC oder Smart-
Phone Geräten und mittels GPS und Speech API kann man dann auch ein eigenes "Navi" bauen
Fortsetztung folgt ... Thema Parameter für die Optimize() Methode