В чем разница между использованием этих двух методов при попытке найти город и штат по почтовому индексу, который вводит пользователь.При использовании Essentials, насколько я могу судить, вы должны сделать два вызова: один для получения долготы / широты почтового индекса, а другой - для получения дополнительной информации о долготе / широте.
public async Task GetLocationEssentials(string zip)
{
var locations = await Geocoding.GetLocationsAsync(zip);
var location = locations?.FirstOrDefault();
if (location != null)
{
Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
}
try
{
var lat = location.Latitude;
var lon = location.Longitude;
var placemarks = await Geocoding.GetPlacemarksAsync(lat, lon);
var placemark = placemarks?.FirstOrDefault();
if (placemark != null)
{
var geocodeAddress =
$"AdminArea: {placemark.AdminArea}\n" +
$"CountryCode: {placemark.CountryCode}\n" +
$"CountryName: {placemark.CountryName}\n" +
$"FeatureName: {placemark.FeatureName}\n" +
$"Locality: {placemark.Locality}\n" +
$"PostalCode: {placemark.PostalCode}\n" +
$"SubAdminArea: {placemark.SubAdminArea}\n" +
$"SubLocality: {placemark.SubLocality}\n" +
$"SubThoroughfare: {placemark.SubThoroughfare}\n" +
$"Thoroughfare: {placemark.Thoroughfare}\n";
Console.WriteLine(geocodeAddress);
}
}
catch (FeatureNotSupportedException fnsEx)
{
// Feature not supported on device
}
catch (Exception ex)
{
// Handle exception that may have occurred in geocoding
}
}
Второй вариант - получить ключ API карт Google и позвонить в их API с помощью почтового индекса, но для этого необходимо получить ключ API, а затем ограничить до 2500 вызовов в день.
public async System.Threading.Tasks.Task GetLocationAsync(string zip)
{
string url = "http://maps.googleapis.com/maps/api/geocode/json?address=" + zip + "&sensor=true";
var client = new HttpClient();
// 'using' forces proper cleanup after finishing the operation
using (var response = await client.GetAsync(url))
{
if (response.IsSuccessStatusCode)
{
var jsonResult = await response.Content.ReadAsStringAsync();
//var jsonResponse = JsonConvert.DeserializeObject<>(jsonResult);
}
}
}
Есть ли польза от использования вызова googleapi, кроме необходимости совершать 1 звонок?Будут ли заблокированы предметы первой необходимости, если вы будете делать много звонков?