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) { } } }
//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); } }
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)); }