Как я могу динамически использовать переменную адреса fr geocode в C# для получения
Я пытаюсь определить долготу и широту использования Геокода в C#, но у меня есть такая ошибка, как
{
"функция error_message" : "неверный запрос. Отсутствует 'адрес', 'комплектующие', 'latlng С" или "place_id' параметр.",
"результаты" : [],
"статус" : "INVALID_REQUEST"
}
а иногда и ошибка ответа
мне нужно использовать адресные переменные внутри параметров и передать их в строку запроса
Что я уже пробовал:
публичный статический список GetAddressesByKeyword(ключевое слово string , строковый адрес = null)
{
var parameters = новый словарь<string, string>()
{
{"адрес", " 836 Килбридж-Лейн, Коппелл, Техас" },
{"input",ключевое слово.Заменять(" ", "+") },
{"типы", "геокод" },
{"ключ", ConfigurationManager.Параметр Appsettings["GoogleApiKey"]}
};
если (!строка.IsNullOrWhiteSpace(адрес))
параметры["address_components"] = строка.Формат("адрес{0}", address.Нижестоящим());
var queryString = строка.Join("&", параметры.Выберите(kv => kv.Key + "=" + kv.Value));
var webRequest = WebRequest.Создать("http://maps.googleapis.com/maps/api/geocode/json-что?" + строки запроса );
public static List GetAddressesByKeyword(string keyword , string address = null) { var parameters = new Dictionary<string, string>() { {"address", " 836 Kilbridge Lane, Coppell, TX" }, {"input",keyword.Replace(" ", "+") }, {"types", "geocode" }, {"key", ConfigurationManager.AppSettings["GoogleApiKey"]} }; if (!String.IsNullOrWhiteSpace(address)) parameters["address_components"] = String.Format("address{0}", address.ToLower()); var queryString = String.Join("&", parameters.Select(kv => kv.Key + "=" + kv.Value)); var webRequest = WebRequest.Create("http://maps.googleapis.com/maps/api/geocode/json?" + queryString ); var webResponse = webRequest.GetResponse(); var items = new List<googleaddressmodel>(); using (var reader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) { var content = reader.ReadToEnd(); var mapItem = JsonConvert.DeserializeObject<googlegeocoderesponse>(content); if (mapItem.status.ToLower() == "ok") { foreach (var r in mapItem.results) { items.Add(ResultToModel(r)); } } } return items; }