public void TestGoogleGeoCodingResponse() { SpotInfo sinfo = new SpotInfo(); sinfo.Address = "1310 South White Oak Drive , Apt 714 , Waukegan"; Geocoder geo = new Geocoder(); GeoResult result = geo.GetGeoResult(sinfo); Assert.AreEqual(result.Status, GeoResultStatus.OK); }
public void TestCurrentLocation() { SpotInfo sinfo = new SpotInfo(42.370525571796215, -87.85941852461143); //sinfo.LatLng = new SpotLatLng(42.370525571796215, -87.85941852461143); sinfo.Sensor = true; Geocoder geo = new Geocoder(); GeoResult geoResult = geo.GetGeoResult(sinfo); Assert.IsTrue(geoResult.Results.Count > 0); }
/// <summary> /// Get geocoding result /// </summary> /// <param name="info"></param> /// <param name="format">"json", "xml" or...</param> /// <returns></returns> public GeoResult GetGeoResult(SpotInfo info, string format) { if (info == null) return GeoResult.BlankResult; if (string.Empty.Equals(info.Address) && SpotLatLng.NOT_DEFINE_LAT_LNG.Equals(info.LatLng)) return GeoResult.BlankResult; IGeoResultParser parser = null; if ("json".Equals(format)) parser = new JsonGeoResultParser(); else throw new NotSupportedException(); String resultText = GoogleGeoAPI.SendRequest(info, format); /*parse the resultText to GeoResult Object*/ GeoResult result = parser.Parse(resultText); return result; }
public ActionResult Index(FourSquareVenueViewModel viewModel) { viewModel.FourSquareVenueList.Clear(); SpotInfo sinfo = new SpotInfo(); sinfo.Address = viewModel.FourSquareVenueEntity.LocationName.Trim(); Geocoder geo = new Geocoder(); GeoResult result = geo.GetGeoResult(sinfo); if(result.Status == GeoResultStatus.OK){ string authToken = ConfigurationManager.AppSettings["authToken"].ToString(); string lat = result.Results[0].Geometry.Location.Lat.ToString(); string lang = result.Results[0].Geometry.Location.Lng.ToString(); string latlang = lat + "," + lang; var recommentedVenues = NetSquare.VenueExplore(latlang, "", "", "", "10000", "", viewModel.FourSquareVenueEntity.Query, "", "", authToken); foreach (var place in recommentedVenues.places) { var recommendedValues = ((List<NetSquare.FourSquareRecommendedVenues.recommends>)place.Value); foreach (var recommendedValue in recommendedValues) { viewModel.FourSquareVenueList.Add(new NetSquare.FourSquareVenue { url = recommendedValue.venue.url, name = recommendedValue.venue.name, id = recommendedValue.venue.id, location = new NetSquare.FourSquareLocation{ Lat = recommendedValue.venue.location.Lat, Long = recommendedValue.venue.location.Long }, stats = new NetSquare.FourSquareStats { checkinsCount = recommendedValue.venue.stats.checkinsCount, usersCount = recommendedValue.venue.stats.usersCount, } }); } } } if (viewModel.FourSquareVenueList.Count > 0) { var fourSquareHelper = new FourSquareVenueHelper(); viewModel.FourSquareVenueForChart = fourSquareHelper.GetViewModel(viewModel.FourSquareVenueList); } return View(viewModel); }
/// <summary> /// Get geocoding result, call GetGeoResult(SpotInfo info, string format) with format: "json" /// </summary> /// <param name="info"></param> /// <returns></returns> public GeoResult GetGeoResult(SpotInfo info) { return GetGeoResult(info, "json"); }
public static String SendRequest(SpotInfo sinfo, String format) { String query = GOOGLE_GEOCODING_API_URL + format; if (sinfo.LatLng == SpotLatLng.NOT_DEFINE_LAT_LNG) query += "?address=" + sinfo.Address; else query += "?latlng=" + sinfo.LatLng.ToString(); query += "&sensor=" + ((sinfo.Sensor) ? "true" : "false"); if (!String.Empty.Equals(sinfo.Language)) query += "&language=" + sinfo.Language; return WebRequest(query); }