Ejemplo n.º 1
0
 public PoiViewItemList(IEnumerable <Poi> poiList, GpsLocation myLocation, IGpsUtilities iGpsUtilities)
 {
     if (poiList != null)
     {
         foreach (var item in poiList)
         {
             var poiViewItem = new PoiViewItem(item);
             poiViewItem.GpsLocation.Bearing  = iGpsUtilities.Bearing(myLocation, poiViewItem.GpsLocation);
             poiViewItem.AltitudeDifference   = CompassViewUtils.GetAltitudeDifference(myLocation, poiViewItem.GpsLocation);
             poiViewItem.GpsLocation.Distance = iGpsUtilities.Distance(myLocation, poiViewItem.GpsLocation);
             poiViewItem.GpsLocation.GetVerticalViewAngle(myLocation);
             Add(poiViewItem);
         }
     }
 }
Ejemplo n.º 2
0
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (requestCode == EditActivity.REQUEST_ADD_POI)
            {
                if (resultCode == EditActivity.RESULT_OK)
                {
                    var id   = data.GetLongExtra("Id", 0);
                    var item = Context.Database.GetItem(id);

                    var poiViewItem = new PoiViewItem(item);
                    poiViewItem.GpsLocation.Bearing  = _iGpsUtilities.Bearing(Context.MyLocation, poiViewItem.GpsLocation);
                    poiViewItem.AltitudeDifference   = CompassViewUtils.GetAltitudeDifference(Context.MyLocation, poiViewItem.GpsLocation);
                    poiViewItem.GpsLocation.Distance = _iGpsUtilities.Distance(Context.MyLocation, poiViewItem.GpsLocation);
                    _adapter.Add(poiViewItem);
                }
                if (resultCode == EditActivity.RESULT_OK_AND_CLOSE_PARENT)
                {
                    SetResult(RESULT_OK_AND_CLOSE_PARENT);
                    Finish();
                }
            }

            if (requestCode == EditActivity.REQUEST_EDIT_POI)
            {
                if (resultCode == EditActivity.RESULT_OK)
                {
                    var id              = data.GetLongExtra("Id", 0);
                    var itemfromDb      = Context.Database.GetItem(id);
                    var itemfromAdapter = _adapter.GetPoiItem(id);
                    itemfromAdapter.Poi = itemfromDb;

                    _adapter.NotifyDataSetChanged();
                }
                if (resultCode == EditActivity.RESULT_OK_AND_CLOSE_PARENT)
                {
                    SetResult(RESULT_OK_AND_CLOSE_PARENT);
                    Finish();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates PoiViewItemList with distance calcalted from current location, and filters-out items not matching maxDistance and minAltitude parameters.
        /// </summary>
        /// <param name="poiList">List of Pois</param>
        /// <param name="location">My current location</param>
        /// <param name="maxDistance">Max distance in kilometers</param>
        /// <param name="minAltitude">Min altitude (progress 100 = 1600m)</param>
        public PoiViewItemList(IEnumerable <Poi> poiList, GpsLocation myLocation, double maxDistance, List <PoiCategory> categories, IGpsUtilities iGpsUtilities)
        {
            foreach (var item in poiList)
            {
                var poiViewItem = new PoiViewItem(item);
                poiViewItem.GpsLocation.Bearing  = iGpsUtilities.Bearing(myLocation, poiViewItem.GpsLocation);
                poiViewItem.AltitudeDifference   = CompassViewUtils.GetAltitudeDifference(myLocation, poiViewItem.GpsLocation);
                poiViewItem.GpsLocation.Distance = iGpsUtilities.Distance(myLocation, poiViewItem.GpsLocation);
                poiViewItem.GpsLocation.GetVerticalViewAngle(myLocation);

                if (poiViewItem.GpsLocation.Distance > maxDistance * 1000)
                {
                    continue;
                }

                if (!categories.Contains(poiViewItem.Poi.Category))
                {
                    continue;
                }

                Add(poiViewItem);
            }
        }