MS MapPoint

Rund um MS-MapPoint

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

MS MapPoint

Beitrag von Wolfgang Ciriack »

Ich habe die Anbindung meines Programms an MS Mappoint implementiert und stoße jetzt auf ein Problem:

Ich lese aus dem Profile folgende Werte aus (funktioniert):

Code: Alles auswählen

local v_liter_st:=oRoute:DriverProfile:FuelConsumptionCity
local v_liter_hw:=oRoute:DriverProfile:FuelConsumptionHighway
local v_preis_km:=oRoute:DriverProfile:DrivingCost
local v_speed_1:=oRoute:DriverProfile:Speed(1)
verändere dann die Werte. Beim Zurückschreiben der Werte

Code: Alles auswählen

   oRoute:DriverProfile:FuelConsumptionCity:=v_liter_st
   oRoute:DriverProfile:FuelConsumptionHighway:=v_liter_hw
   oRoute:DriverProfile:DrivingCost:=v_preis_km
*   oRoute:DriverProfile:Speed(1):=120
   oRoute:DriverProfile:Speed(1) := v_speed_1
bekomme ich nur bei

oRoute:DriverProfile:Speed(1):=120
oder
oRoute:DriverProfile:Speed(1) := v_speed_1

einen Compilerfehler

xbt0231: Invalid lvalue

Kann mir jemand erklären, was da falsch ist oder wie man die Zuweisung des Wertes ändern kann ?
Viele Grüße
Wolfgang
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Ich vermute mal folgendes:

Alle anderen Zuweisungen erfolgen über Member-Variablen. Nach Deinem Code
"Route:DriverProfile:Speed(1)"
handet es hier sich um eine Methode!

Vielleicht funktioniert es so:
Route:DriverProfile:Speed(1, 120)

Gruß, Olaf
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Olaf,
Speed ist keine Methode, sondern auch eine Eigenschaft des Objekts.
Druch den Parameter in Klammern wird der Straßentyp definiert, d.h.
ich kann so wie beim Auslesen der Werte Speed(1) bis Speed(5) Werte zuweisen.
Im Beispiel in der MS Beschreibung steht auch z.B.

objRoute.DriverProfile.Speed(geoRoadLimitedAccess) = 55

wobei der Wert hier geoRoadLimitedAccess=2 ist.

Bei deinem Vorschlag Route:DriverProfile:Speed(1, 120)
kommt die Fehlermeldung "unzulässige Parameter".

Trotzdem vielen Dank.
Viele Grüße
Wolfgang
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hallo Wolgang,
ich bleibe dabei: :speed( xValue) ist nach Deinem Code eine Methode (also eine "Funktion", die auf Basis von xValue einen Wert zurück gibt) und keine Member-Variable.

Wahrscheinlich gibt es für die Zuweisung des Strassetyps eine gesonderte Methode.

Gruß, Olaf
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hello again,
Tom hatte das gleiche Problem hat folgende Lösung gepostet:

Code: Alles auswählen

oMap:activeRoute:DriverProfile:SetProperty("Speed",1,nSpeed)
Gruß, Olaf
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Prima, vielen Dank an Olaf und Tom, damit klappt.
Viele Grüße
Wolfgang
Antworten