public NavigatorPageViewModel(string navigationGraphName,
                                      Guid destinationRegionID,
                                      Guid destinationWaypointID,
                                      string destinationWaypointName,
                                      XMLInformation informationXML)

        {
            _firsrDirectionInstructionScaleVale = 1;
            _destinationID           = destinationWaypointID;
            _destinationWaypointName = destinationWaypointName;
            CurrentStepImage         = "waittingscan.gif";

            _instructionLocation = _originalInstructionLocation;
            _navigationModule    = new NavigationModule(navigationGraphName,
                                                        destinationRegionID,
                                                        destinationWaypointID);
            _navigationModule._event._eventHandler += GetNavigationResultEvent;
            const string resourceId = "IndoorNavigation.Resources.AppResources";

            _resourceManager    = new ResourceManager(resourceId, typeof(TranslateExtension).GetTypeInfo().Assembly);
            CurrentWaypointName = _resourceManager.GetString("NULL_STRING", CrossMultilingual.Current.CurrentCultureInfo);
            CurrentStepLabel    = _resourceManager.GetString("NO_SIGNAL_STRING", CrossMultilingual.Current.CurrentCultureInfo);
            var currentLanguage = CrossMultilingual.Current.CurrentCultureInfo;

            if (CrossMultilingual.Current.CurrentCultureInfo.ToString() == "en" || CrossMultilingual.Current.CurrentCultureInfo.ToString() == "en-US")
            {
                _firstDirectionInstruction = NavigraphStorage.LoadFirstDirectionXML(navigationGraphName + "_en-US.xml");
            }
            else if (CrossMultilingual.Current.CurrentCultureInfo.ToString() == "zh" || CrossMultilingual.Current.CurrentCultureInfo.ToString() == "zh-TW")
            {
                _firstDirectionInstruction = NavigraphStorage.LoadFirstDirectionXML(navigationGraphName + "_zh.xml");
            }
            _navigationGraph = NavigraphStorage.LoadNavigationGraphXML(navigationGraphName);
            _xmlInformation  = informationXML;
        }
Exemplo n.º 2
0
        /// <summary>
        /// If it is the first time to get waypoint then get the value of
        /// route options and start the corresponding session.
        /// </summary>
        private void ConstructSession()
        {
            List <ConnectionType> avoidList = new List <ConnectionType>();

            Console.WriteLine("-- setup preference --- ");
            if (Application.Current.Properties.ContainsKey("AvoidStair"))
            {
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidStair"] ?
                    ConnectionType.Stair : ConnectionType.NormalHallway);
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidElevator"] ?
                    ConnectionType.Elevator : ConnectionType.NormalHallway);
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidEscalator"] ?
                    ConnectionType.Escalator : ConnectionType.NormalHallway);

                avoidList = avoidList.Distinct().ToList();
                avoidList.Remove(ConnectionType.NormalHallway);
            }
            Console.WriteLine("-- end of setup preference --- ");

            // Start the session
            _session = new Session(
                NavigraphStorage.LoadNavigationGraphXML(_navigationGraphName),
                _destinationRegionID,
                _destinationWaypointID,
                avoidList.ToArray());

            _navigationResultEventHandler  = new EventHandler(HandleNavigationResult);
            _session._event._eventHandler += _navigationResultEventHandler;
        }
Exemplo n.º 3
0
        public DestinationPickPage(string navigationGraphName, CategoryType category)
        {
            InitializeComponent();

            const string resourceId = "IndoorNavigation.Resources.AppResources";

            _resourceManager = new ResourceManager(resourceId, typeof(TranslateExtension).GetTypeInfo().Assembly);

            _destinationItems = new ObservableCollection <DestinationItem>();

            _navigationGraphName = navigationGraphName;

            _navigationGraph = NavigraphStorage.LoadNavigationGraphXML(navigationGraphName);
            if (CrossMultilingual.Current.CurrentCultureInfo.ToString() == "en" || CrossMultilingual.Current.CurrentCultureInfo.ToString() == "en-US")
            {
                _nameInformation = NavigraphStorage.LoadInformationML(navigationGraphName + "_info_en-US.xml");
            }
            else if (CrossMultilingual.Current.CurrentCultureInfo.ToString() == "zh" || CrossMultilingual.Current.CurrentCultureInfo.ToString() == "zh-TW")
            {
                _nameInformation = NavigraphStorage.LoadInformationML(navigationGraphName + "_info_zh.xml");
            }

            NavigationPage.SetBackButtonTitle(this, _resourceManager.GetString("BACK_STRING", CrossMultilingual.Current.CurrentCultureInfo));

            foreach (KeyValuePair <Guid, IndoorNavigation.Models.Region> pairRegion in _navigationGraph.GetRegions())
            {
                string floorName = _nameInformation.GiveRegionName(pairRegion.Value._id);
                if (pairRegion.Value._waypointsByCategory.ContainsKey(category))
                {
                    foreach (Waypoint waypoint in pairRegion.Value._waypointsByCategory[category])
                    {
                        string waypointName = waypoint._name;
                        waypointName = _nameInformation.GiveWaypointName(waypoint._id);
                        if (waypoint._type.ToString() == "terminal" || waypoint._type.ToString() == "landmark")
                        {
                            Console.WriteLine("check type : " + waypoint._type.ToString());
                            _destinationItems.Add(new DestinationItem
                            {
                                _regionID     = pairRegion.Key,
                                _waypointID   = waypoint._id,
                                _waypointName = waypointName,
                                _floor        = floorName
                            });
                        }
                        else
                        {
                            Console.WriteLine("Portal, No need to add!!");
                        }
                    }
                }
            }

            MyListView.ItemsSource = from waypoint in _destinationItems
                                     group waypoint by waypoint._floor into waypointGroup
                                     orderby waypointGroup.Key
                                     select new Grouping <string, DestinationItem>(waypointGroup.Key,
                                                                                   waypointGroup);
        }
        async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            var currentLanguage = CrossMultilingual.Current.CurrentCultureInfo;

            if (e.Item is Location location)
            {
                NavigationGraph navigationGraph = NavigraphStorage.LoadNavigationGraphXML(location.UserNaming);

                switch (navigationGraph.GetIndustryServer())
                {
                case "hospital":
                    var answser = await DisplayAlert(
                        _resourceManager.GetString("GO_NAVIGATION_HOME_PAGE_STRING", currentLanguage),
                        location.UserNaming, _resourceManager.GetString("OK_STRING", currentLanguage),
                        _resourceManager.GetString("CANCEL_STRING", currentLanguage));

                    if (answser)
                    {
                        await Navigation.PushAsync(new NavigationHomePage(location.UserNaming));
                    }
                    break;

                case "city_hall":
                    var answser_city_hall = await DisplayAlert(
                        _resourceManager.GetString("GO_NAVIGATION_HOME_PAGE_STRING", currentLanguage),
                        location.UserNaming, _resourceManager.GetString("OK_STRING", currentLanguage),
                        _resourceManager.GetString("CANCEL_STRING", currentLanguage));

                    if (answser_city_hall)
                    {
                        await Navigation.PushAsync(new CityHallHomePage(location.UserNaming));
                    }
                    break;

                default:
                    Console.WriteLine("Unknown _industryService");
                    break;
                }
            }
        }