Beispiel #1
0
        protected override void InternalProcess(AppContext appContext)
        {
            if (Id.DbTrain == null)
            {
                return;
            }

            if (Id.DbTrain.EncodedPolyline == null)
            {
                Id.DbTrain.EncodedPolyline = EncodedPolyline;
            }

            if (EncodedPolyline != null)
            {
                Station?currentStation  = appContext.TrainStationLinks.Where(sl => sl.TrainId == Id.DbTrain.Id && sl.FromId == 0).Select(sl => sl.To).FirstOrDefault();
                double  currentDistance = 0;

                while (currentStation != null)
                {
                    Polyline    polyline        = new Polyline(EncodedPolyline, Projection.WebMercatorHungary);
                    ProjVector2?stationPosition = null;
                    while (stationPosition == null && currentDistance <= polyline.MeterLength / 1000)
                    {
                        stationPosition  = PlacesAPI.Search(currentStation, polyline.AtDistance(currentDistance), searchRadius, 3);
                        currentDistance += searchRadius;
                    }

                    if (stationPosition != null)
                    {
                        stationPosition.IntoProjection(Projection.LatitudeLongitude);
                        var newDist = polyline.ProjectedDistance(stationPosition, 0.5);
                        if (newDist != null)
                        {
                            currentDistance = newDist.Value;
                            appContext.TrainStations.Where(st => st.TrainId == Id.DbTrain.Id && st.StationId == currentStation.Id).FirstOrDefault().Distance = currentDistance;
                        }

                        currentStation.Latitude  = stationPosition.X;
                        currentStation.Longitude = stationPosition.Y;

                        if (newDist >= polyline.MeterLength / 1000)
                        {
                            return;
                        }
                    }

                    currentStation = appContext.TrainStationLinks.Where(sl => sl.TrainId == Id.DbTrain.Id && sl.FromId == currentStation.Id && sl.ToId != 0).Select(sl => sl.To).FirstOrDefault();
                }
            }
        }
Beispiel #2
0
        public void OpenPlaces()
        {
            MainLayout.Visibility    = ViewStates.Gone;
            VisitedLayout.Visibility = ViewStates.Gone;
            placesLayout.Visibility  = ViewStates.Visible;
            PlacesAPI     places = new PlacesAPI();
            mygps         gps    = new mygps(LocationManager, this, SD);
            List <string> Points = new List <string>();

            Points = places.Getinfo(gps.GetCoordinate(), "museum");
            Points.AddRange(places.Getinfo(gps.GetCoordinate(), "cafe"));
            Points.AddRange(places.Getinfo(gps.GetCoordinate(), "restaurant"));
            if (Points.Count == 0)
            {
                string error = "Could Find any interesting places or no connection to google!";
                Points.Add(error);
            }
            ArrayAdapter <string> arrayAdapter = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, Points);

            placeslistview.Adapter = arrayAdapter;
        }
        public JsonResult GetPlaceId(string searchString)
        {
            PlacesAPI placesAPI = new PlacesAPI();

            return(Json(placesAPI.getPlaceID(searchString), JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public JsonResult GetDetailsFromPlaceID(string placeIdString)
        {
            PlacesAPI placesAPI = new PlacesAPI();

            return(Json(placesAPI.getDetailsFromPlaceID(placeIdString), JsonRequestBehavior.AllowGet));
        }
    static void SetApiKeyOnlyIOS()
    {
        const string apiKey = "YOUR_API_KEY_HERE";

        PlacesAPI.SetIosApiKey(apiKey);
    }