Exemple #1
0
        public void PositionChanged(object sender, Plugin.Geolocator.Abstractions.PositionEventArgs arg)
        {
            if ((LocFlag == LocationFlag.Start || LocFlag == LocationFlag.InBackground) &&
                (RouteCoordinates.Count == 0 || arg.Position.Timestamp.Ticks != RouteCoordinates.Last().Timestamp.Ticks))    //first element can be null, so dont use it
            {
                RouteCoordinates.Add(new Plugin.Geolocator.Abstractions.Position(arg.Position));
                LastCoordinates.Add(new Plugin.Geolocator.Abstractions.Position(arg.Position));
                DrawPoint = new Plugin.Geolocator.Abstractions.Position(arg.Position);


                switch (Device.RuntimePlatform)
                {
                case Device.iOS:
                case Device.Android:
                    if (VisibleRegion != null)
                    {
                        this.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(arg.Position.Latitude, arg.Position.Longitude), VisibleRegion.Radius));
                    }
                    break;

                case Device.UWP:
                    //Implementation in native map

                    break;
                }
            }
        }
Exemple #2
0
 void RemoveLastCoordinates()
 {
     for (int i = 0; i < LastCoordinates.Count; i++)
     {
         GridNode node = LastCoordinates[i];
         node.RemoveObstacle();
     }
     LastCoordinates.FastClear();
 }
Exemple #3
0
        void UpdateCoordinates()
        {
            const long gridSpacing = FixedMath.One;

            bufferCoordinates.FastClear();
            CachedBody.GetCoveredSnappedPositions(gridSpacing, bufferCoordinates);
            foreach (Vector2d vec in bufferCoordinates)
            {
                GridNode node = GridManager.GetNode(vec.x, vec.y);

                if (node == null)
                {
                    continue;
                }

                node.AddObstacle();
                LastCoordinates.Add(node);
            }
        }
Exemple #4
0
        public async Task StopListeningLocation(bool stopGeolocator, bool ifDataReset)
        {
            LocFlag = LocationFlag.Stop;

            LastPFlag = new Plugin.Geolocator.Abstractions.Position();

            if (ifDataReset == true)
            {
                platformRoad = new object();//is delete

                RouteCoordinates.Clear();
                LastCoordinates.Clear();
                DrawPoint = null;
                LastPFlag = null;
            }

            AppGeolocator.Current.PositionChanged -= PositionChanged;
            AppGeolocator.Current.PositionError   -= PositionError;

            await AppGeolocator.StopListeningAsync(MyGeoFlag, stopGeolocator);
        }