Example #1
0
        private void MyMap2_MapLongClicked(object sender, Xamarin.Forms.GoogleMaps.MapLongClickedEventArgs e)
        {
            //var pin = new Pin
            //{
            //    Position = new Position(e.Point.Latitude, e.Point.Longitude)
            //};

            var pin = new Xamarin.Forms.GoogleMaps.Pin()
            {
                Type     = Xamarin.Forms.GoogleMaps.PinType.Place,
                Label    = "New Place",
                Address  = "Hello world",
                Position = new Xamarin.Forms.GoogleMaps.Position(e.Point.Latitude, e.Point.Longitude),
                Rotation = -33.3f,
                Tag      = "",
                //IsVisible = switchIsVisibleTokyo.IsToggled
            };

            //var place = new Place2
            //{
            //    PlaceName = "New Place",
            //    Address = "hello",
            //    Location = new Location { lat = (float)e.Point.Latitude, lng = (float)e.Point.Longitude },
            //    Position = new Xamarin.Forms.GoogleMaps.Position(e.Point.Latitude, e.Point.Longitude),
            //    //Icon = place.icon,
            //    //Distance = $"{GetDistance(lat1, lon1, place.geometry.location.lat, place.geometry.location.lng, DistanceUnit.Kiliometers).ToString("N2")}km",
            //    //OpenNow = GetOpenHours(place?.opening_hours?.open_now)
            //};

            pin.IsDraggable = true;

            MyMap2.Pins.Add(pin);
        }
        public ShowMeetingPopupPage(Xamarin.Forms.GoogleMaps.Pin pin, Xamarin.Forms.GoogleMaps.Map map)
        {
            InitializeComponent();

            this.pin = pin;
            this.map = map;

            user       = repo.GetUserById(int.Parse(Preferences.Get("id", "")));
            meeting_Id = -1;

            int pin_Id = -1;

            bool alreadyIn = false;

            foreach (Pin p in repo.GetAllPins())
            {
                if (p.Latitude == pin.Position.Latitude && p.Longitude == pin.Position.Longitude)
                {
                    pin_Id = p.Id;
                }
            }
            foreach (Meeting m in repo.GetAllMeetings())
            {
                if (pin_Id != -1 && m.Pin_Id == pin_Id)
                {
                    meeting_Id = m.Id;
                    met        = m;
                }
            }
            foreach (UserMeeting um in repo.GetAllUserMeetings())
            {
                if (um.User_Id == user.Id && um.Meeting_Id == meeting_Id)
                {
                    alreadyIn = true;
                }
            }

            if (alreadyIn)
            {
                AcceptButton.IsEnabled = false;
                CancelButton.Text      = "Reject";
            }
            else
            {
                AcceptButton.IsEnabled = true;
                CancelButton.Text      = "Cancel";
            }

            InitializeView(repo.GetMeetingById(meeting_Id));
        }
        private void DisplayInMap(List <Post> experiences)
        {
            foreach (var post in experiences)
            {
                try
                {
                    var position = new Xamarin.Forms.GoogleMaps.Position(post.Latitude, post.Longitude);

                    var pin = new Xamarin.Forms.GoogleMaps.Pin()
                    {
                        Type     = Xamarin.Forms.GoogleMaps.PinType.SavedPin,
                        Label    = post.VenueName,
                        Address  = post.Address,
                        Position = position,
                        Rotation = 33.3f,
                        Tag      = "id_osama",
                    };
                    locationMap.Pins.Add(pin);
                }
                catch (NullReferenceException nre) { }
                catch (Exception ex) { }
            }
        }
Example #4
0
        //ObservableCollection<Place2> placesList2 = new ObservableCollection<Place2>();


        private void UpdateMap()
        {
            try
            {
                //Embedded resourceのPlaces.jsonを読み込む.文字列として
                var    assembly = IntrospectionExtensions.GetTypeInfo(typeof(MainPage)).Assembly;
                Stream stream   = assembly.GetManifestResourceStream("MapApp.Places.json");
                string text     = string.Empty;
                using (var reader = new StreamReader(stream))
                {
                    text = reader.ReadToEnd();
                }

                //文字列のJsonをPlacesオブジェクトに変換する
                var resultObject = JsonConvert.DeserializeObject <Places>(text);

                //場所の情報PlaceをListに追加する.
                foreach (var place in resultObject.results)
                {
                    placesList.Add(new Place
                    {
                        PlaceName = place.name,
                        Address   = place.vicinity,
                        Location  = place.geometry.location,
                        Position  = new Position(place.geometry.location.lat, place.geometry.location.lng),
                        //Icon = place.icon,
                        //Distance = $"{GetDistance(lat1, lon1, place.geometry.location.lat, place.geometry.location.lng, DistanceUnit.Kiliometers).ToString("N2")}km",
                        //OpenNow = GetOpenHours(place?.opening_hours?.open_now)
                    });

                    var pin = new Xamarin.Forms.GoogleMaps.Pin()
                    {
                        Type     = Xamarin.Forms.GoogleMaps.PinType.Place,
                        Label    = place.name,
                        Address  = place.vicinity,
                        Position = new Xamarin.Forms.GoogleMaps.Position(place.geometry.location.lat, place.geometry.location.lng),
                        Rotation = 33.3f,
                        Tag      = "",
                        //IsVisible = switchIsVisibleTokyo.IsToggled
                    };
                    MyMap2.Pins.Add(pin);
                    //MyMap2.Add(new Place2
                    //{
                    //    PlaceName = place.name,
                    //    Address = place.vicinity,
                    //    Location = place.geometry.location,
                    //    Position = new Xamarin.Forms.GoogleMaps.Position(place.geometry.location.lat, place.geometry.location.lng),
                    //    //Icon = place.icon,
                    //    //Distance = $"{GetDistance(lat1, lon1, place.geometry.location.lat, place.geometry.location.lng, DistanceUnit.Kiliometers).ToString("N2")}km",
                    //    //OpenNow = GetOpenHours(place?.opening_hours?.open_now)
                    //});
                }

                MyMap.ItemsSource = placesList;
                //MyMap2.Pins.Add() = placesList2;
                //PlacesListView.ItemsSource = placesList;
                //var loc = await Xamarin.Essentials.Geolocation.GetLocationAsync();
                MyMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(47.6370891183, -122.123736172), Distance.FromKilometers(100)));
                MyMap2.MoveToRegion(Xamarin.Forms.GoogleMaps.MapSpan.FromCenterAndRadius(new Xamarin.Forms.GoogleMaps.Position(47.6370891183, -122.123736172), Xamarin.Forms.GoogleMaps.Distance.FromKilometers(100)));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
        }
Example #5
0
 public Task <PinModel> FindPinModelAsync(Xamarin.Forms.GoogleMaps.Pin pin)
 {
     return(_repositoryService.GetAsync <PinModel>(x =>
                                                   x.Latitude == pin.Position.Latitude && x.Longtitude == pin.Position.Longitude && x.UserID == App.CurrentUserId));
 }