Example #1
0
        private void pointVirtual(SharpGIS.AR.Controls.ARPanel panel, double myLatitude, double myLongtitude, CountryDetails country)
        {
            double virtualLong = 0;
            double virtualLa = 0;
            double hisLatitude = country.lat;
            double hisLongtitude = country.lon;
            string countryName = country.CountryLongName;

            if (myLongtitude != hisLongtitude && myLongtitude + hisLongtitude != 180 && myLongtitude + hisLongtitude != -180)
            {
                if (myLongtitude > 0)
                {
                    if (hisLongtitude > 0)
                    {
                        if (myLongtitude - hisLongtitude > 0)
                        {
                            virtualLong = (hisLongtitude - myLongtitude) / 2;
                            //west
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        virtualLa = 270 + hisLatitude - myLatitude;//west
                                        // virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            virtualLa = 270 + hisLatitude - myLatitude;//west
                                            //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 180 + myLatitude - hisLatitude;//west
                                            // virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            virtualLa = 270 - myLatitude + hisLatitude;//west
                                            //virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 360 + myLatitude - hisLatitude;//west
                                            // virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        virtualLa = 270 - myLatitude + hisLatitude;//west
                                        //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                        else
                        {
                            virtualLong = (myLongtitude - hisLongtitude) / 2;
                            //east
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {

                                        // virtualLa = 270 + hisLatitude - myLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            //  virtualLa = 270 + hisLatitude - myLatitude;//west
                                            virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            // virtualLa = 180 + myLatitude - hisLatitude;//west
                                            virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            // virtualLa = 270 - myLatitude + hisLatitude;//west
                                            virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            //  virtualLa = 360 + myLatitude - hisLatitude;//west
                                            virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        //  virtualLa = 270 - myLatitude + hisLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                    }
                    else
                    {
                        if (180 + hisLongtitude - myLongtitude > 0)
                        {
                            virtualLong = (hisLongtitude - myLongtitude) / 2;
                            //west
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        virtualLa = 270 + hisLatitude - myLatitude;//west
                                        // virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            virtualLa = 270 + hisLatitude - myLatitude;//west
                                            //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 180 + myLatitude - hisLatitude;//west
                                            // virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            virtualLa = 270 - myLatitude + hisLatitude;//west
                                            //virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 360 + myLatitude - hisLatitude;//west
                                            // virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        virtualLa = 270 - myLatitude + hisLatitude;//west
                                        //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                        else
                        {
                            virtualLong = (myLongtitude + hisLongtitude - 180) / 2;
                            //east
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        // virtualLa = 270 + hisLatitude - myLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            //  virtualLa = 270 + hisLatitude - myLatitude;//west
                                            virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            // virtualLa = 180 + myLatitude - hisLatitude;//west
                                            virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            // virtualLa = 270 - myLatitude + hisLatitude;//west
                                            virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            //  virtualLa = 360 + myLatitude - hisLatitude;//west
                                            virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        //  virtualLa = 270 - myLatitude + hisLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                    }


                }
                else
                {
                    if (hisLongtitude > 0)
                    {
                        if (hisLongtitude - myLongtitude - 180 < 0)
                        {
                            virtualLong = (myLongtitude - hisLongtitude) / 2;
                            //east
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        // virtualLa = 270 + hisLatitude - myLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            //  virtualLa = 270 + hisLatitude - myLatitude;//west
                                            virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            // virtualLa = 180 + myLatitude - hisLatitude;//west
                                            virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            // virtualLa = 270 - myLatitude + hisLatitude;//west
                                            virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            //  virtualLa = 360 + myLatitude - hisLatitude;//west
                                            virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        //  virtualLa = 270 - myLatitude + hisLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                        else
                        {
                            virtualLong = (hisLongtitude - myLongtitude - 360) / 2;
                            //west
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        virtualLa = 270 + hisLatitude - myLatitude;//west
                                        // virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            virtualLa = 270 + hisLatitude - myLatitude;//west
                                            //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 180 + myLatitude - hisLatitude;//west
                                            // virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            virtualLa = 270 - myLatitude + hisLatitude;//west
                                            //virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 360 + myLatitude - hisLatitude;//west
                                            // virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        virtualLa = 270 - myLatitude + hisLatitude;//west
                                        //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                    }
                    else
                    {
                        if (myLongtitude - hisLongtitude > 0)
                        {
                            virtualLong = (hisLongtitude - myLongtitude) / 2;
                            //west
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        virtualLa = 270 + hisLatitude - myLatitude;//west
                                        // virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            virtualLa = 270 + hisLatitude - myLatitude;//west
                                            //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 180 + myLatitude - hisLatitude;//west
                                            // virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            virtualLa = 270 - myLatitude + hisLatitude;//west
                                            //virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            virtualLa = 360 + myLatitude - hisLatitude;//west
                                            // virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        virtualLa = 270 - myLatitude + hisLatitude;//west
                                        //  virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                        else
                        {
                            virtualLong = (myLongtitude - hisLongtitude) / 2;
                            //east
                            if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                            {
                                if (myLatitude > 0)
                                {
                                    if (hisLatitude > 0)
                                    {
                                        // virtualLa = 270 + hisLatitude - myLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                    else
                                    {
                                        if (myLatitude - hisLatitude < 90)
                                        {
                                            //  virtualLa = 270 + hisLatitude - myLatitude;//west
                                            virtualLa = 90 + myLatitude - hisLatitude;//east
                                        }
                                        else
                                        {
                                            // virtualLa = 180 + myLatitude - hisLatitude;//west
                                            virtualLa = 180 - myLatitude + hisLatitude;//east
                                        }
                                    }
                                }
                                else
                                {
                                    if (hisLatitude > 0)
                                    {
                                        if (myLatitude - hisLatitude > -90)
                                        {
                                            // virtualLa = 270 - myLatitude + hisLatitude;//west
                                            virtualLa = 90 - hisLatitude + myLatitude;//east
                                        }
                                        else
                                        {
                                            //  virtualLa = 360 + myLatitude - hisLatitude;//west
                                            virtualLa = hisLatitude - myLatitude;//east
                                        }
                                    }
                                    else
                                    {
                                        //  virtualLa = 270 - myLatitude + hisLatitude;//west
                                        virtualLa = 90 + myLatitude - hisLatitude;//east
                                    }
                                }
                            }
                            else
                            {
                                virtualLa = -90;
                            }
                        }
                    }
                }

            }

            else
            {

                if (myLatitude - hisLatitude != 90 && myLatitude - hisLatitude != -90)
                {
                    if (myLatitude > 0)
                    {
                        if (hisLatitude > 0)
                        {
                            if (hisLatitude - myLatitude > 0)
                            {
                                virtualLa = 0;
                                virtualLong = myLatitude - hisLatitude;
                            }
                            else
                            {
                                virtualLa = 180;
                                virtualLong = myLatitude - hisLatitude;
                            }
                            // virtualLa = 270 + hisLatitude - myLatitude;//west
                            // virtualLa = 90 + myLatitude - hisLatitude;//east
                        }
                        else
                        {
                            if (myLatitude - hisLatitude < 90)
                            {
                                virtualLa = 180;
                                virtualLong = hisLatitude - myLatitude;
                                //  virtualLa = 270 + hisLatitude - myLatitude;//west
                                //  virtualLa = 90 + myLatitude - hisLatitude;//east
                            }
                            else
                            {
                                virtualLa = 0;
                                virtualLong = myLatitude - hisLatitude - 180;
                                // virtualLa = 180 + myLatitude - hisLatitude;//west
                                // virtualLa = 180 - myLatitude + hisLatitude;//east
                            }
                        }
                    }
                    else
                    {
                        if (hisLatitude > 0)
                        {
                            if (myLatitude - hisLatitude > -90)
                            {
                                virtualLa = 0;
                                virtualLong = myLatitude - hisLatitude;
                                // virtualLa = 270 - myLatitude + hisLatitude;//west
                                //virtualLa = 90 - hisLatitude + myLatitude;//east
                            }
                            else
                            {
                                virtualLa = 180;
                                virtualLong = hisLatitude - myLatitude - 180;
                                //  virtualLa = 360 + myLatitude - hisLatitude;//west
                                // virtualLa = hisLatitude - myLatitude;//east
                            }
                        }
                        else
                        {
                            if (myLatitude - hisLatitude < 0)
                            {
                                virtualLa = 0;
                                virtualLong = myLatitude - hisLatitude;
                            }
                            else
                            {
                                virtualLa = 180;
                                virtualLong = myLatitude - hisLatitude;
                            }
                            //  virtualLa = 270 - myLatitude + hisLatitude;//west
                            //  virtualLa = 90 + myLatitude - hisLatitude;//east
                        }
                    }
                }
                else
                {
                    virtualLa = -90;
                    virtualLong = 0;
                }
            }
            /*
            if (myLongtitude - hisLongtitude < 0)
            {
                if (myLongtitude - hisLongtitude > -180)
                {
                    virtualLong = (myLongtitude - hisLongtitude) / 2;
                    virtualLa = 90 + myLatitude - hisLatitude;
                }
                else
                {
                    virtualLong = (hisLongtitude - myLongtitude - 360) / 2;
                        virtualLa = 90 - myLatitude + hisLatitude;
                }
            }
            else
            {
                if (myLongtitude - hisLongtitude < 180)
                {
                    virtualLong = (hisLongtitude - myLongtitude) / 2;
                    virtualLa = 90 + myLatitude - hisLatitude;
                }
                else
                {
                    virtualLong = (myLongtitude - hisLongtitude - 360) / 2;
                    virtualLa = 90 - myLatitude + hisLatitude;
                }
            }
            TextBlock countryNameText = new TextBlock() { Text = countryName };
            SharpGIS.AR.Controls.ARPanel.SetDirection(countryNameText, new Point(0, 30));
            panel.Children.Add(countryNameText);
            TextBlock countryNameText1 = new TextBlock() { Text = countryName };
            SharpGIS.AR.Controls.ARPanel.SetDirection(countryNameText1, new Point(-10, 200));
            panel.Children.Add(countryNameText1);
            TextBlock countryNameText2 = new TextBlock() { Text = countryName };
            SharpGIS.AR.Controls.ARPanel.SetDirection(countryNameText2, new Point(-80, 90));
            panel.Children.Add(countryNameText2);
            TextBlock countryNameText3 = new TextBlock() { Text = countryName };
            SharpGIS.AR.Controls.ARPanel.SetDirection(countryNameText3, new Point(-30, 330));
            panel.Children.Add(countryNameText3);
             */


            Button countryNameBTN = new Button();
            countryNameBTN.Content = countryName;
            countryNameBTN.Tag = countryName + "/" + hisLatitude.ToString() + "/" + hisLongtitude.ToString();
            countryNameBTN.Foreground = new SolidColorBrush(Colors.Red);
            //countryNameBTN.Click += countryNameBTN_Click;
            countryNameBTN.Click += (a, b) => {
                App.selectedCountryDetails = country;
                Button clickedBtn = (Button)a;
                string[] information = clickedBtn.Tag.ToString().Split('/');
                var queryData = string.Format("?c={0}&lat={1}&lon={2}", information[0], information[1], information[2]);
                NavigationService.Navigate(new Uri("/SelectedCountryDetail.xaml" + queryData, UriKind.Relative));
            };
            countryNameBTN.BorderBrush = new SolidColorBrush(Colors.Transparent);
            countryNameBTN.BorderThickness = new Thickness(0);

            SharpGIS.AR.Controls.ARPanel.SetDirection(countryNameBTN, new Point(virtualLong, virtualLa));

            panel.Children.Add(countryNameBTN);



        }
Example #2
0
        //gives you a country data which hasn't been displayed before
        private CountryDetails[] GetQuestionData()
        {

            bool uniqueFound = false;
            CountryDetails[] uniqueQuestion = new CountryDetails[5];
            int countryListItemIndex = 0;

            while (uniqueFound == false)
            {
                foreach (CountryDetails country in App.allCoutries)
                {
                    if (!questionAlreadyAsked.Contains(country.CountryLongName.ToString()))
                    {
                        uniqueFound = true;
                        uniqueQuestion[0] = country;
                        questionAlreadyAsked.Add(country.CountryLongName.ToString());
                        countryListItemIndex++;
                        break;
                    }
                    else
                    {
                        uniqueQuestion[0] = null;
                    }
                }
            }

            int totalElements = App.allCoutries.Count;

            bool allGuessesFound = false;

            List<int> alreadyChosen = new List<int>();
            int tempCounter = 1;

            while (allGuessesFound == false)
            {
                Random rand = new Random();
                int temp = rand.Next(0, totalElements - 1);
                if (alreadyChosen.Contains(temp) == false && temp != countryListItemIndex)
                {
                    alreadyChosen.Add(temp);
                    uniqueQuestion[tempCounter] = App.allCoutries.ElementAt(temp);
                    tempCounter++;
                }

                if (tempCounter > 4)
                    allGuessesFound = true;
            }

            return uniqueQuestion;
        }