private async Task Button_Clicked() { var locator = CrossGeolocator.Current; var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10)); var Lat = position.Latitude.ToString(); var Lon = position.Longitude.ToString(); // 現在地をスタート地点に地図表示 var map = new Map(MapSpan.FromCenterAndRadius( new Position(position.Latitude, position.Longitude), Distance.FromMiles(0.3))) { IsShowingUser = true, HeightRequest = 100, WidthRequest = 960, VerticalOptions = LayoutOptions.FillAndExpand }; var stack = new StackLayout { Spacing = 0 }; stack.Children.Add(pinbutton); stack.Children.Add(map); Content = stack; // Define user location and distance might be navigated as kilometer? await GeoSearchAsync(lat : Lat, lon : Lon, distance : 100); // Regex re = new Regex(@"[^0-9]"); for (int i = 0; i < 15; i++) { var pinn = new Pin { Type = PinType.SearchResult, Position = new Position(Modelss[i].Geolocation.Latitude, Modelss[i].Geolocation.Longitude), //Position = new Position(35.681298, 139.766247), Label = Modelss[i].Snackname, Address = Modelss[i].Address, }; Device.BeginInvokeOnMainThread(() => { // 同期(UIスレッド) map.Pins.Add(pinn); }); pinn.Clicked += async(x, y) => { // string id = re.Replace(pinn.Id.ToString(), ""); var page = new SnackDetailsPage(pinn.Address); await Navigation.PushAsync(page); }; } }
async void OnListViewItemSelected(object sender, SelectedItemChangedEventArgs e) { var model = ((ListView)sender).SelectedItem as Models; if (model != null) { var page = new SnackDetailsPage(model.Address); // page.BindingContext = model; await Navigation.PushAsync(page); } }