hi,
ich habe es ja nun soweit das ich auf die Map clicken kann und er sucht sich dann das "nächste"
Ziel. Er braucht aber ein Ziel und das sind z.Z. nur meine
PushPin mit den Kunden. Nun will ich ja
"zwischen" 2 Kunden suchen z.b. entlang der Autobahn.
PlaceCategory Objekt
Das PlaceCategory-Objekt stellt eine einzelne Sehenswürdigkeitskategorie dar. Diese Kategorien
werden auf der Karte durch die FindNearby-Methode einer Directions-Auflistung, eines Direction-
Objekts oder eines Location-Objekts angezeigt
Dies ist das "Fenster" was man bei
:PaneState :=
geoPaneNearbyPlaces bekommt.
Nun habe ich nichts für "Sehenswürdigkeitskategorie" in meiner Karte "übrig", also hab ich die mit
Code: Alles auswählen
METHOD XbMap:onlyMeinePin()
::oMap:ActiveMap:PlaceCategories:setProperty(;
"Visible", geoFalse )
RETURN self
einfach alles "abgeschaltet" und als Resultat bleibt "Meine Pushpin" übrig.
Die
Pushpin´s sind als
Datasets(1) geöffnet worden.
Das nächste was ich also machen muss ist ein "neues"
Datasets anzulegen wo ich auch noch
"andere" Ziele angeben kann. Dies wären z.b. die Anschluss Stellen der Autobahn wo ich ja
auch meine Toll Collect Stationen habe. Ich habe also nun an meiner BAB 7 rumgebastelt und
aus den gefundenen
Waypoint und deren
Location die Geo Kordinaten (GPS ?) "berechnet"
Code: Alles auswählen
METHOD XbMap:CalcPos(oMap, oLoc, nLocLat, nLocLon)
LOCAL oNordPol
LOCAL oStCruz
LOCAL oSuedPol
LOCAL dblHalfEarth
LOCAL dblQuarterEarth
LOCAL Pi
LOCAL d,l
oNordPol := oMap:GetLocation( 90, 0)
oStCruz := oMap:GetLocation( 0,-90) // Center of western hemisphere
oSuedPol := oMap:GetLocation(-90, 0)
// Compute distance between north and south poles == half earth circumference
dblHalfEarth := oMap:Distance(oNordPol,oSuedPol)
// Quarter of that is the max distance a point may be away from locSantaCruz and still be in western hemisphere
dblQuarterEarth := dblHalfEarth / 2
Pi := 3.14159265358979
// Compute latitude from distance to north pole
nLocLat := 90 - 180 * oMap:Distance(oNordPol, oLoc) / dblHalfEarth
// Compute great circle distance to locX from point on Greenwich meridian and computed Latitude
d := oMap:Distance(oMap:GetLocation(nLocLat, 0), oLoc)
// convert latitude to radian
l := (nLocLat / 180) * Pi
// Compute Longitude from great circle distance
nLocLon := 180 * Arccos((Cos((d * 2 * Pi) / (2 * dblHalfEarth)) - Sin(l) * Sin(l)) / (Cos(l) * Cos(l))) / Pi
// Correct longitude sign if located in western hemisphere
If oMap:Distance(oStCruz, oLoc) < dblQuarterEarth
nLocLon = nLocLon*(-1)
ENDIF
RETURN self
das scheint zu funktionieren, denn danach hab ich dann die Geo Koordinaten als
Pushpin gesetzt
und die liegen alle "auf" der Autobahn ... wieso "auf" ?
Tja ein "kleines" Problem von MapPoint ist nun das er mir auch Punkte "auf" der Autobahn anzeigt
obwohl ich nirgends eine Auf- / Ab-fahrt "sehen" kann ...
ok und dann noch : es gibt ja normalerweise auf jeder Seite der BAB Anschlusstellen ...
... spielt zwar als Ziel nicht ein so grosse Rolle, aber wenn ich schon soweit bin :
Code: Alles auswählen
Latitude Longitude KM
A7, 24983 Handewitt 54.74645 9.37805 7.111
A7, 24941 Jarplund-Weding 54.74628 9.37802 7.126
wenn aus Nord komme und Richtung Süden fahre dann ich "wer" auf "meiner" Seite der BAB ?
soweit sogut, aber nun stellt sich die Frage wie bekomme ich "diese" Karte mit meiner "anderen"
Kunden Karte zusammen ? Ich denke mal man müsste zuerst die Kunden Karte als
Datasets(1)
laden und dann weitere
Datasets erstellen / Laden (???).
Frage : kann man ein weiteres
Datasets "laden" ? wenn wie ?
das erstellen geht ja schnell weil ich die GPS Koordinaten habe ... naja paar Hundert
PushPin nur
für die BAB 7 wären es schon ... deshalb würde ich die lieber "laden" oder "umschalten" ... aber da
muss ich wohl noch ein wenig nachlegen.