Seite 1 von 1

MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 0:03
von AUGE_OHR
hi,

Ich weiss noch nicht wo ich nachschauen soll um eine solche Karte zu erstellen.
Wo fange ich an zu lesen ?

Frage : Was ist der Unterschied zwischen einem PushPin und einem WayPoint ?
Kann man die PINs "einfärben" ?

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 0:10
von Tom
Hallo, Jimmy.

PushPins sind auf die Karte gesetzte Locations, die zunächst keinen Zusammenhang haben müssen, während WayPoints die einzelnen Locations (vormals PushPins) sind, die insgesamt eine Route ergeben.

Um PushPins "einzufärben", kann man die iVar :Symbol benutzen. Einfach in der MP-Hilfe nach "Symbol - Eigenschaft" suchen, da findest Du unten eine Liste mit den verfügbaren Icons, die man nach Erzeugung eines PushPins zuordnen kann.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 1:56
von AUGE_OHR
hi,
Tom hat geschrieben: PushPins sind auf die Karte gesetzte Locations, die zunächst keinen Zusammenhang haben müssen, während WayPoints die einzelnen Locations (vormals PushPins) sind, die insgesamt eine Route ergeben.
kann man die nachträglich zu Waypoints "konvertieren" ?
Tom hat geschrieben: Um PushPins "einzufärben", kann man die iVar :Symbol benutzen. Einfach in der MP-Hilfe nach "Symbol - Eigenschaft" suchen, da findest Du unten eine Liste mit den verfügbaren Icons, die man nach Erzeugung eines PushPins zuordnen kann.
Yup die hab ich nun unter Symbol endeckt.

Ich versuche mal zusammen zu fassen :
1.) oMap ... ohne die geht nichts
2.) statt über ActiveRoute nun AddPushpin ? ... oder Datasets ?
3.) die Location ist das Resultat von FindAddressResults welche ich nun per AddPushpin hinzufüge
4.) an jeden PIN hänge ich dann noch ein Symbol mit

Code: Alles auswählen

oMap:Symbols:Item(nSymbol)
hm ... hört sich ja "einfach" an ... also auf ans Werk

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 6:06
von AUGE_OHR
hi,
Tom hat geschrieben: ... die man nach Erzeugung eines PushPins zuordnen kann.
und da komme ich nicht weiter :(

Code: Alles auswählen

*   Set objPushpin = objMap.AddPushpin(objLoc)
*   'Als Pinsymbol rotes Auto festlegen
*   Let objPushpin.Symbol = objMap.Symbols.Item(83)

oPushPin := ::oMap:ActiveMap:AddPushpin(oResult:Item(nWahl))
oPushPin:Symbol := ::oMap:ActiveMap:Symbols:Item(83)
und peng ...
oError:args :
-> VALTYPE: C VALUE: Symbol
-> VALTYPE: O CLASS: AutomationObject
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Falscher Parameter.
Falscher Parameter.

oError:filename : NIL
oError:genCode : NIL
oError:operation : Symbol
oError:osCode : -2147024809
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from XBMAP:PINKUNDEN(1945)
Called from (B)JOBMAP(126)
Called from JOBMAP(149)
Called from ALLKDPIN(1630)
Called from (B)CREATEMENUSYSTEM(1008)
Called from MAIN(874)
ich denke mal das ich das LET nicht richtig verstehe ...

es gibt bei Symbols doch die Methode ADD() ... wenn ich ein AddPushpin() mache wird dann
"automatisch" ein Symbols:ADD() ... oder bin ich auf dem "Holzweg" ...

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 6:21
von AUGE_OHR
wenn ich nun alle PushPin´s gesetzt habe, wie bekomme ich ihn dazu "alle" auf der Karte anzuzeigen?

ich meine sowas wie "zoom" ... bei Calculate() macht er es ja automatisch.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 7:32
von Wolfgang Ciriack
Hi Jimmi,
mit oMap:Union(aTmp):goto() kannst du die Karte auf alle im Array aTmp enthaltenen Location-Objekte einpassen.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 7:41
von AUGE_OHR
hm ...
[quote="AUGE_OHR"]

Code: Alles auswählen

oPushPin := ::oMap:ActiveMap:AddPushpin(oResult:Item(nWahl))
oPushPin:Symbol := ::oMap:ActiveMap:Symbols:Item(83)
und das hab ich jetzt

Code: Alles auswählen

*           Set objPushpin = objMap.AddPushpin(objLoc)
*           'Als Pinsymbol rotes Auto festlegen
*           Let objPushpin.Symbol = objMap.Symbols.Item(83)

            oPushPin := ::oMap:ActiveMap:AddPushpin(oResult:Item(nWahl))
            oPushPin:SetProperty("Symbol",83)
... aber das hatte ich doch auch ganz am Anfang ... und nun geht es !?

na gut das Problem hat sich dann auch gelöst :)

wer mal sehen möchte was für Symbole es gibt
http://msdn.microsoft.com/en-us/library/aa736261.aspx
(wenn man es als URL markiert klappt es auch mit dem .aspx)

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 7:45
von AUGE_OHR
moin,
Wolfgang Ciriack hat geschrieben: mit oMap:Union(aTmp):goto() kannst du die Karte auf alle im Array aTmp enthaltenen Location-Objekte einpassen.
hm ... Array aTmp ... ich komme aus eine DBF ...
sollte ich die Daten aus der DBF vorher in ein Array schaufeln ? oder gleich mit DataSets ?
Wenn Array : Was für Daten (vermutlich Strasse etc) und die "angeordnet" ?

wenn ich alle PushPin gesetzt habe müsste ich doch irgendwie mit Count() was machen können ?

brauche noch 1-2 "Tritte" in die richtige Richtung ...

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 11:08
von Wolfgang Ciriack
Hallo Jimmi,
im Array müssen Location-Objekte (oL) stehen, z.B

Code: Alles auswählen

oL := oMap:findResults(..<adresse>...):item(1)
dem Location-Object OL kannst du dann einen PushPin zuordnen:

Code: Alles auswählen

oPP := oMap:addPushPin(oL, ..<Name>...)
dem Pushpin kannst du dann Eigenschaften geben:

Code: Alles auswählen

oPP:note := ..<beschreibung>.....
oPP:balloonState := 2
oPP:symbol := .....
PushPins kannst du dann über den Namen suchen:

Code: Alles auswählen

oPP:=oMap:FindPushpin(..<Name>..)
und z.B. wieder löschen

Code: Alles auswählen

oPP:Delete()
Die Location-Objecte kannst du dann wieder als Waypoints deiner Route zuordnen, bei der du dann auch die Anzahl abfragen kannst:

Code: Alles auswählen

 oRoute:Waypoints:add(oL,..<Name>)
 l:=oRoute:Waypoints:Count()
 for i:=1 to l
     oRoute:Waypoints:Item(i):StopTime:=mpp_wartezeit*geoOneMinute
 next
 

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 21:56
von AUGE_OHR
hi,

aha ... ein Licht geht an ...
ok danke, ich werde das mal evaluieren.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Do, 09. Okt 2008 23:45
von AUGE_OHR
hi,

nochmal eine Frage : angenommen ich nehme meine PushPin Object in ein Array auf. Nun habe
ich verschiedene Symbole genommen. Kann ich PushPin´s "ausblenden" ? Wenn wie ?

... und dann wäre da die Frage ob es einen schnelleren Weg als findResults(..<adresse>...) gibt ?
Er setzt jetzt seit über 2Std. Pushpin´s und ist bei 70% (von ca. 3000)

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Fr, 10. Okt 2008 0:30
von AUGE_OHR
hi,

gibt es bei

Code: Alles auswählen

  oPushPin := ::oMap:ActiveMap:AddPushpin(oResult:Item(nWahl),mKdnr)
  ::ColorPIN(oPushPin)
  oPushPin:Note := cText
eine Beschränkung ?

nachden er etliche PushPins gesetzt hat kommt so was ...
oError:args :
-> VALTYPE: C VALUE: Note
-> VALTYPE: C VALUE: SO NA MU Stand vom 30.06.99 Eur 0.00
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Unbekannter Fehler 0
oError:filename : NIL
oError:genCode : NIL
oError:operation : Note
oError:osCode : -2147467259
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
----------------------------------------------------------------------------
CALLSTACK:
----------------------------------------------------------------------------
Called from XBMAP:PINKUNDEN(1970)
Called from (B)JOBMAP(129)
Called from JOBMAP(152)
Called from ALLKDPIN(1639)
Called from (B)CREATEMENUSYSTEM(1008)
Called from MAIN(874)

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Fr, 10. Okt 2008 1:06
von AUGE_OHR
ok es was irgendwas in meinem cText drin

Code: Alles auswählen

mSoll       := STR(KUNDEN->Umssoll - KUNDEN->Umshaben)
IF VAL( mSoll ) > 0
   cText := mkdname+" Stand vom "+mLast+" Eur "+mSoll
ELSE
   cText := mkdname+" "+mLast
ENDIF
und die 0 muss sich auf mSoll beziehen. So aufgeteilt geht es nun ...

aber nun die nächste Frage : Wenn ich die Ballon Informationen gesetzt habe, wie kann ich die
ein-/ausblenden ? kann ich irgendwelche "Bedingungen" einbringen ?

er hat bei mir (P4 3GHz HT) ca. 4422 Sec. für 2700 Pushpin gebraucht, also ca. 1.7sec / Pushpin.
kann man die Zeit verringern z.b. die "Anzeige" ausschalten oder so ?

kann man die Symbole noch "verändern" z.b. Grösse = Umsatz oder so ?
wo sind eigentlich die Symbole (EXE, DLL) ?

wie ist es mit der "Legende" ? bekomme ich da die Symbole rein ?

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Fr, 10. Okt 2008 1:39
von AUGE_OHR
hm ...
------------------------------------------------------------------------------

ASCOM10.DLL : Xbase++ Runtime DLL, Hotfix Rollup #19 for Xbase++ 1.90.331
ASCOM10C.DLL : 1.90.0331 Xbase++ Runtime DLL Hotfix Rollup #16
XPPRT1.DLL : 1.90.0331 Xbase++ Runtime DLL Hotfix Rollup #13
XPPUI1.DLL : 1.90.0331 Xbase++ Runtime DLL, Hotfix Rollup #12 for Xbase++ 1»

------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: Note
-> VALTYPE: C VALUE: Panda Imbiss Stand vom 18.08.08 Eur 224.17
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Unbekannter Fehler 0
oError:filename : NIL
oError:genCode : NIL
oError:operation : Note
oError:osCode : -2147467259
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from XBMAP:PINKUNDEN(1997)
Called from (B)JOBMAP(129)
Called from JOBMAP(164)
Called from ALLKDPIN(1641)
nun weiss ich nicht mehr was er will ... ist ihm das vielleicht "zu schnell" ...

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Fr, 10. Okt 2008 7:34
von Wolfgang Ciriack
Hi Jimmi,
ja, Mappoint ist nicht alzu schnell, evtl. kann man es beschleunigen, indem man nur die Geokoordinaten zum Anzeigen benutzt

Code: Alles auswählen

oL:=oMap:GetLocation(<Lat>, <Lon>)
Dazu müsstest du jedoch erst einmal für alle Kunden diese feststellen und abspeichern.

Da ich die ganze Sache zur Darstellung von Ortungsdaten von Fahrzeuge benutze, bin ich jetzt auf ein Programm von einer Berliner Firma umgestiegen, da haben wir eine XML-Schnittstelle über die die Geokodierung, Darstellung etc. sehr schnell geht. Hat darüber hinaus auch noch andere Vorteile (TCM Datendarstellung, Fahrtberichte etc.). Kostet allerdings auch 800,00 € statt 300,00 € für Mappoint.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Fr, 10. Okt 2008 7:47
von AUGE_OHR
hi,
Wolfgang Ciriack hat geschrieben: ja, Mappoint ist nicht alzu schnell, evtl. kann man es beschleunigen
Nein in diesem Fall scheine ich ihn tatsächlich "noch langsamer" machen zu müssen.
ich hab ihn nun ein SLEEP(40) nach :Symbol aber vor :Note gegeben und das scheint
nun zu reichen.
Wolfgang Ciriack hat geschrieben: , indem man nur die Geokoordinaten zum Anzeigen benutzt

Code: Alles auswählen

oL:=oMap:GetLocation(<Lat>, <Lon>)
Dazu müsstest du jedoch erst einmal für alle Kunden diese feststellen und abspeichern.
ja das wollte ich sowieso, aber in der MP2004 bekomme ich ja eben NICHT die Geokoordinaten
sondern muss mit die mit "CalPos" berechnen (das war die Sache mit dem Dreieck ...)
Wolfgang Ciriack hat geschrieben: Da ich die ganze Sache zur Darstellung von Ortungsdaten von Fahrzeuge benutze, bin ich jetzt auf ein Programm von einer Berliner Firma umgestiegen, da haben wir eine XML-Schnittstelle über die die Geokodierung, Darstellung etc. sehr schnell geht. Hat darüber hinaus auch noch andere Vorteile (TCM Datendarstellung, Fahrtberichte etc.). Kostet allerdings auch 800,00 € statt 300,00 € für Mappoint.
hört sich interessant an. Ich habe die Version ja dem Kunden "abgeschwätzt" und 0 Euro bezahlt,
aber ein Update ist wohl fällig.

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: So, 12. Okt 2008 13:43
von AUGE_OHR
hi,
Wolfgang Ciriack hat geschrieben: ja, Mappoint ist nicht alzu schnell, evtl. kann man es beschleunigen, indem man nur die Geokoordinaten zum Anzeigen benutzt

Code: Alles auswählen

oL:=oMap:GetLocation(<Lat>, <Lon>)
Dazu müsstest du jedoch erst einmal für alle Kunden diese feststellen und abspeichern.
Ich habe die Kunden nun als Pushpin abgespeichert und als :Name jeweils die Kunden ID eingetragen
Wenn ich nun die "präparierte" Map lade komme ich über FindPushPin(KundenID) ganz schnell zum
Pushpin. Wenn ich nun das Pushpin Object habe hole ich mir die oPushPin:Location property und
setzte die als Waypoint. Damit brauche ich kein FindAddressResults() und MP hat kein Arbeit damit
und damit ist er richtig schnell.

Ausserdem hab ich nun alle anderen PushPin im Radius vom 10KM "im Blick" ... nun muss ich am
Event Handling arbeiten wenn der User auf die Map clickt ...

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Mi, 22. Okt 2008 5:28
von AUGE_OHR
hi,

ich komme nochmal auf diesen Thread zurück weil ich immer noch nicht weiss wie ich den Umsatz
darstellen soll. Ich habe eine Karte mit Pushpin´s. Ich kann jeden Kunden und seinen Pushpin finden
und mir das PushPin Object holen ... und wie mache ich daraus z.b. eine "Säule" oder "Kuchenstück"

Ich blicke da noch gar nicht durch, wo ich was finde ... HELP need ! :withstupid:

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Sa, 25. Okt 2008 0:24
von AUGE_OHR
hi,

kann mir wirklich keiner helfen wie ich mit MapPoint "Chart"s erstellen kann ?

Re: MapPoint alle Kunden nach Umsatz darstellen

Verfasst: Sa, 25. Okt 2008 2:50
von Martin Altmann
Jimmy,
für Charts gibt es RMCHart :D

Viele Grüße,
Martin