protected void btnSearch_Click(object sender, EventArgs e) { var results = GoogleMapsAPIHelpersCS.GetGeocodingSearchResults(txtSearch.Text.Trim()); var resultCount = results.Elements("result").Count(); lvDidYouMean.Visible = false; lblNoResults.Visible = false; // How many results did we get back? if (resultCount == 0) { //Eep, no results! lblNoResults.Visible = true; } else if (resultCount == 1) { //Got back just one result, show the stores that match the address search ShowResults(results); } else { //Got back multiple results - We need to ask the user which address they mean to use... var matches = from result in results.Elements("result") let formatted_address = result.Element("formatted_address").Value select formatted_address; lvDidYouMean.DataSource = matches; lvDidYouMean.DataBind(); lvDidYouMean.Visible = true; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { var address = Request.QueryString["Address"]; if (string.IsNullOrEmpty(address)) { Response.Redirect("FindAStore.aspx"); } // Get the lat/long info about the address var results = GoogleMapsAPIHelpersCS.GetGeocodingSearchResults(address); lblAddress.Text = address; // Set the latitude and longtitude parameters based on the address being searched on dsSearchResults.SelectParameters["Latitude"].DefaultValue = results.Element("result").Element("geometry").Element("location").Element("lat").Value; dsSearchResults.SelectParameters["Longitude"].DefaultValue = results.Element("result").Element("geometry").Element("location").Element("lng").Value; lvSearchResults.DataBind(); } }