コード例 #1
0
        public AugmentedPlacemarks()
        {
            Mode          = AugmentedMode.Explorer;
            mapData       = MapDataHandler.FetchGraphData();
            allPlacemarks = new List <GeoPlacemark>();

            foreach (GeoPoint point in mapData["Placemarks"])
            {
                allPlacemarks.Add(new GeoPlacemark(point));
            }

            allPoints = mapData["AllPoints"];

            pointsIndex = new Dictionary <int, int>();
            pointsByID  = new Dictionary <int, GeoGraphPoint>();

            int index = 0;

            foreach (GeoPoint point in mapData["AllPoints"])
            {
                pointsIndex.Add(point.ID, index++);
            }

            foreach (GeoPoint point in allPoints)
            {
                pointsByID.Add(point.ID, new GeoGraphPoint {
                    ID = point.ID, Name = point.Name, Position = point.Position
                });
            }

            currentPosition = new GeoCoordinate();

            PrepareDistanceMatrix();
            //FindShortestPath(pointsByID[-1460], pointsByID[-1508]);
        }
コード例 #2
0
        public void SwitchToNavigator(GeoPlacemark destination)
        {
            int    nodeID = int.MaxValue;
            double tempDistance = double.PositiveInfinity, dummy;

            foreach (GeoPoint point in allPoints)
            {
                if ((dummy = LatLongMath.GetDistance(currentPosition, point.Position)) < tempDistance)
                {
                    tempDistance = dummy;
                    nodeID       = point.ID;
                }
            }

            if (nodeID != int.MaxValue)
            {
                pathWay = FindShortestPath(pointsByID[nodeID], destination);
            }

            GeoPlacemark place = pathWay.ElementAt(0);

            place.Distance    = LatLongMath.GetDistance(currentPosition, place.Position);
            place.Orientation = LatLongMath.GetCompassBearing(currentPosition, place.Position);

            Mode = AugmentedMode.Navigator;
        }
コード例 #3
0
 public void SwitchToExplorer()
 {
     UpdatePlacemarks();
     pathWay = null;
     Mode    = AugmentedMode.Explorer;
 }