Example #1
0
        private void getAddressAndLocation()
        {
            //住所が空欄だったら住所を取得する。
            if (PermissionOfLocationService == true)
            {
                /*
                 * if (TextBox_Address.Text == "" || TextBox_Address.Text == "Address")
                 * {
                 *  GeoCoding geoCode = new GeoCoding();
                 *
                 *  geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
                 *  GeoCoordinate location = new GeoCoordinate(Convert.ToDouble(TextBox_Latitude.Text), Convert.ToDouble(TextBox_Longitude.Text));
                 *  geoCode.GetAddressFromGeoCoordinate(location);
                 * }
                 */
                if (TextBox_Latitude.Text != "" && TextBox_Longitude.Text != "" && (TextBox_Address.Text == "" || TextBox_Address.Text == "Address"))
                {
                    GeoCoding geoCode = new GeoCoding();

                    geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
                    GeoCoordinate location = new GeoCoordinate(Convert.ToDouble(TextBox_Latitude.Text), Convert.ToDouble(TextBox_Longitude.Text));
                    geoCode.GetAddressFromGeoCoordinate(location);
                }
                else if ((TextBox_Latitude.Text == "" || TextBox_Longitude.Text == "") && (TextBox_Address.Text != "" && TextBox_Address.Text != "Address"))
                {
                    GeoCoding geoCode = new GeoCoding();

                    geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadReverseGeoCodeResultCompleted;
                    string address = TextBox_Address.Text;
                    geoCode.GetGeoCoordintateFromAddress(address);
                }
            }
        }
        private void TextBox_Search_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key.Equals(Key.Enter))
            {
                e.Handled = true;
                this.Focus();

                GeoCoding geoCode = new GeoCoding();
                geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadReverseGeoCodeResultCompleted;
                geoCode.GetGeoCoordintateFromAddress(TextBox_SearchBox.Text);
            }
        }
        private void Grid_GoCurrentLocation_Hold(object sender, System.Windows.Input.GestureEventArgs e)
        {
            if (Sensor.Location.IsUnknown == true)
            {
                return;
            }

            var currentLocation = Sensor.Location;

            AddNewPin(currentLocation);

            var vc = VibrateController.Default;

            vc.Start(TimeSpan.FromMilliseconds(50));


            GeoCoding geoCode = new GeoCoding();

            geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
            geoCode.GetAddressFromGeoCoordinate(currentLocation);
        }
        private void AddNewPin(GeoCoordinate location)
        {
            PushPinModel pin = new PushPinModel();

            pin.Location   = location; //new GeoCoordinate(holdLocation.Latitude, holdLocation.Longitude),
            pin.Name       = "New Place";
            pin.Color      = new SolidColorBrush(Utility.GetColorFromHexString(PushPinView.DefaultColor_Hex));
            pin.Note       = "";
            pin.IsEnabled  = true;
            pin.Selected   = false;
            pin.Target     = false;
            pin.Visibility = System.Windows.Visibility.Visible;
            pin.CreateDate = DateTime.Now;

            pin.PropertyChanged += Pin_PropertyChanged;

            PushPinView.PushPins.Add(pin);

            bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible);

            if (darkTheme == true)//darkの時は白抜きの画像
            {
                pin.ArrowURI  = "/Icons/appbar.next.rest.png";
                pin.CircleURI = "/Icons/appbar.basecircle.rest.png";
            }
            else
            {
                pin.ArrowURI  = "/Icons/appbar.next.rest.light.png";
                pin.CircleURI = "/Icons/appbar.base.png";
            }

            Dispatcher.BeginInvoke(() =>
            {
                //var holdLocation = MyMap.ViewportPointToLocation(e.GetPosition(MyMap));

                GeoCoding geoCode = new GeoCoding();
                geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
                geoCode.GetAddressFromGeoCoordinate(location);
            });
        }
Example #5
0
        //ページに移動してきた時の処理。
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            //if (DB == null)
            //    DB = new AppDB();

            PreferredEmail = (string)IsolatedStorageSettings.ApplicationSettings["PreferredEmail"];

            //テーマがlightかdarkによって、電話マークの白、黒を切り替える。
            bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible);

            if (darkTheme == true)//darkの時は白抜きの画像
            {
                Image_Phone.Source      = new BitmapImage(new Uri("/Icons/MB_0008_phone.png", UriKind.RelativeOrAbsolute));
                Image_BaseCircle.Source = new BitmapImage(new Uri("/Icons/appbar.basecircle.rest.png", UriKind.RelativeOrAbsolute));
            }
            else//lightの時は黒抜きの画像
            {
                Image_Phone.Source      = new BitmapImage(new Uri("/Icons/MB_0008_phone2.png", UriKind.RelativeOrAbsolute));
                Image_BaseCircle.Source = new BitmapImage(new Uri("/Icons/appbar.base.png", UriKind.RelativeOrAbsolute));
            }

            TimeNow = DateTime.Now;

            //PushPinView = DB.LoadInfoFromXML();
            PushPinView = MyApp.PushPinView;

            edittype = NavigationContext.QueryString["EditingType"];
            if (NavigationContext.QueryString["EditingType"] == "New")//新規登録か登録済みか
            {
                newItemFlag = true;
            }
            else
            {
                newItemFlag = false;
            }

            if (resume != null)//レジュームデータから復元
            {
                TextBox_Name.Text = resume.Name;
                if (Double.IsNaN(resume.Location.Latitude) == false)
                {
                    TextBox_Latitude.Text = resume.Location.Latitude.ToString();
                }
                else
                {
                    TextBox_Latitude.Text = "";
                }
                if (Double.IsNaN(resume.Location.Longitude) == false)
                {
                    TextBox_Longitude.Text = resume.Location.Longitude.ToString();
                }
                else
                {
                    TextBox_Longitude.Text = "";
                }

                TextBox_Address.Text  = resume.Address;
                TextBox_PhoneNum.Text = resume.PhoneNum;
                TextBox_Note.Text     = resume.Note;

                if (resume.Target == true)
                {
                    CheckBox_IsTarget.IsChecked = true;
                }
                else
                {
                    CheckBox_IsTarget.IsChecked = false;
                }

                if (resume.Visibility == System.Windows.Visibility.Visible)
                {
                    CheckBox_IsVisible.IsChecked = true;
                }
                else
                {
                    CheckBox_IsVisible.IsChecked = false;
                }

                TextBlock_CreateDate.Text      = resume.CreateDate.ToString();
                TextBlock_CreateDayOfWeek.Text = resume.CreateDate.DayOfWeek.ToString();

                resume      = null;
                doNotResume = false;
            }
            else if (newItemFlag == true)//新規登録
            {
                TextBox_Name.Text            = "New Place";
                TextBox_Latitude.Text        = NavigationContext.QueryString["Latitude"];
                TextBox_Longitude.Text       = NavigationContext.QueryString["Longitude"];
                CheckBox_IsVisible.IsChecked = true;
                TextBlock_CreateDate.Text    = TimeNow.ToString();
            }
            else//登録済みアイテムの修正
            {
                PushPinModel selctedItem = PushPinView.GetSelcted();

                if (selctedItem != null)
                {
                    TextBox_Name.Text      = selctedItem.Name;
                    TextBox_Latitude.Text  = selctedItem.Location.Latitude.ToString();
                    TextBox_Longitude.Text = selctedItem.Location.Longitude.ToString();
                    TextBox_Address.Text   = selctedItem.Address;
                    TextBox_PhoneNum.Text  = selctedItem.PhoneNum;
                    TextBox_Note.Text      = selctedItem.Note;

                    if (selctedItem.Target == true)
                    {
                        CheckBox_IsTarget.IsChecked = true;
                    }
                    else
                    {
                        CheckBox_IsTarget.IsChecked = false;
                    }

                    if (selctedItem.Visibility == System.Windows.Visibility.Visible)
                    {
                        CheckBox_IsVisible.IsChecked = true;
                    }
                    else
                    {
                        CheckBox_IsVisible.IsChecked = false;
                    }
                    TextBlock_CreateDate.Text      = selctedItem.CreateDate.ToString();
                    TextBlock_CreateDayOfWeek.Text = selctedItem.CreateDate.DayOfWeek.ToString();
                }
            }


            Panorama.Title = TextBox_Name.Text;

            //住所が空欄だったら住所を取得する。
            if (PermissionOfLocationService == true)
            {
                /*
                 * if (TextBox_Address.Text == "" || TextBox_Address.Text == "Address")
                 * {
                 *  GeoCoding geoCode = new GeoCoding();
                 *
                 *  geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
                 *  GeoCoordinate location = new GeoCoordinate(Convert.ToDouble(TextBox_Latitude.Text), Convert.ToDouble(TextBox_Longitude.Text));
                 *  geoCode.GetAddressFromGeoCoordinate(location);
                 * }
                 */
                if (TextBox_Latitude.Text != "" && TextBox_Longitude.Text != "" && (TextBox_Address.Text == "" || TextBox_Address.Text == "Address"))
                {
                    GeoCoding geoCode = new GeoCoding();

                    geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadGeoCodeResultCompleted;
                    GeoCoordinate location = new GeoCoordinate(Convert.ToDouble(TextBox_Latitude.Text), Convert.ToDouble(TextBox_Longitude.Text));
                    geoCode.GetAddressFromGeoCoordinate(location);
                }
                else if ((TextBox_Latitude.Text == "" || TextBox_Longitude.Text == "") && (TextBox_Address.Text != "" && TextBox_Address.Text != "Address"))
                {
                    GeoCoding geoCode = new GeoCoding();

                    geoCode.DownloadGeoCodeResultCompleted += geoCode_DownloadReverseGeoCodeResultCompleted;
                    string address = TextBox_Address.Text;
                    geoCode.GetGeoCoordintateFromAddress(address);
                }
            }

            getAddressAndLocation();

            base.OnNavigatedTo(e);
        }