Я использую приведенный ниже код, чтобы получить название города для заданной широты и долготы.
Но код останавливается, когда выполняется эта строка:
var responseElement = XElement.Parse(response);
Он перестает отвечать и не генерирует никаких исключений.
Я предполагаю, что это может быть проблема с асинхронным вызовом.
Может ли кто-нибудь помочь мне с этим или предложить аналогичный код, использующий iOS SDK?
private async Task ReturnCity(string lat, string lon)
{
string city = "None";
string baseUri = string.Format("http://maps.googleapis.com/maps/api/geo ... nsor=false", lat, lon);
HttpClient client = new HttpClient();
var response = await client.GetStringAsync(baseUri);
var responseElement = XElement.Parse(response);
IEnumerablestatusElement = from st in responseElement.Elements("status") select st;
if (statusElement.FirstOrDefault() != null)
{
string status = statusElement.FirstOrDefault().Value;
if (status.ToLower() == "ok")
{
IEnumerable resultElement = from rs in responseElement.Elements("result") select rs;
if (resultElement.FirstOrDefault() != null)
{
IEnumerable addressElement = from ad in resultElement.FirstOrDefault().Elements("address_component") select ad;
foreach (XElement element in addressElement)
{
IEnumerable typeElement = from te in element.Elements("type") select te;
string type = typeElement.FirstOrDefault().Value;
if(type=="locality")
{
IEnumerable cityElement = from ln in element.Elements("long_name") select ln;
city = cityElement.FirstOrDefault().Value;
return city;
break;
}
}
}
}
}
return city;
}
Я просмотрел отладчик и нашел значение ответа. Это похоже на действительный XML. Есть мысли?
OK
airport
transit_station
establishment
Lisbon Portela Airport (LIS), Alameda das Comunidades Portuguesas, 1700-111 Lisboa, Portugal
Lisbon Portela Airport
Lisbon Portela Airport
Alameda das Comunidades Portuguesas
Alameda das Comunidades Portuguesas
route
Lisboa
Lisboa
locality
political
Lisboa
Lisboa
administrative_area_level_1
political
Portugal
PT
country
political
1700-111
1700-111
postal_code
38.7755936
-9.1353667
APPROXIMATE
38.7623900
-9.1475505
38.7994779
-9.1236185
38.7623900
-9.1475505
38.7994779
-9.1236185
ChIJgwHZFkYyGQ0RRm0DWD6lZgo
route
Lisbon Portela Airport (LIS), Rua E, 1700-111 Lisboa, Portugal
Rua E
R. E
route
Lisbon Portela Airport
Lisbon Portela Airport
Lisboa
Lisboa
locality
political
Lisboa
Lisboa
administrative_area_level_1
political
Portugal
PT
country
political
1700-111
1700-111
postal_code
1700
1700
postal_code_prefix
postal_code
38.7757984
-9.1304833
GEOMETRIC_CENTER
38.7744765
-9.1317496
38.7771745
-9.1290516
38.7748799
-9.1307609
38.7767711
-9.1300403
ChIJjdzMckIyGQ0RvIXYZCCI82k
locality
political
Lisbon, Portugal
Lisbon
Lisbon
locality
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7222524
-9.1393366
APPROXIMATE
38.6913994
-9.2298356
38.7958538
-9.0905718
38.6913994
-9.2298356
38.7958538
-9.0905718
ChIJO_PkYRozGQ0R0DaQ5L3rAAQ
postal_code
1700-111 Lisbon, Portugal
1700-111
1700-111
postal_code
Lisbon
Lisbon
locality
political
Olivais
Olivais
administrative_area_level_3
political
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7661892
-9.1291486
APPROXIMATE
38.7544060
-9.1483947
38.7870843
-9.1239064
38.7544060
-9.1483947
38.7870843
-9.1239064
ChIJS-qk_0UyGQ0RN3v7SZnU9D8
postal_code_prefix
postal_code
1700, Portugal
1700
1700
postal_code_prefix
postal_code
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7600325
-9.1400807
APPROXIMATE
38.7448641
-9.1567550
38.7870843
-9.1239064
38.7448641
-9.1567550
38.7870843
-9.1239064
ChIJdVtq_1kyGQ0RYKU7DsHrABw
administrative_area_level_3
political
Olivais, Portugal
Olivais
Olivais
administrative_area_level_3
political
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7721510
-9.1179465
APPROXIMATE
38.7502229
-9.1483924
38.7870963
-9.0905718
38.7502229
-9.1483924
38.7870963
-9.0905718
ChIJccbEUz4yGQ0RsEKQ5L3rAAU
administrative_area_level_2
political
Lisbon, Portugal
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7222986
-9.1393188
APPROXIMATE
38.6913994
-9.2298356
38.7958538
-9.0905718
38.6913994
-9.2298356
38.7958538
-9.0905718
ChIJMabWPRAzGQ0RRFqNEqmj6AI
administrative_area_level_1
political
Lisbon, Portugal
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7223263
-9.1392714
APPROXIMATE
38.6731604
-9.5005266
39.3177286
-8.7819208
38.6731604
-9.5005266
39.3177286
-8.7819208
ChIJWxIr4ajVGA0RwCyQ5L3rAAM
country
political
Portugal
Portugal
PT
country
political
39.3998720
-8.2244540
APPROXIMATE
36.9601772
-9.5171107
42.1542048
-6.1902091
32.4037400
-31.2752439
42.1542048
-6.1902091
ChIJ1SZCvy0kMgsRQfBOHAlLuCo
Подробнее здесь: https://stackoverflow.com/questions/309 ... e-maps-api
Xamarin API Карт Google ⇐ C#
Место общения программистов C#
1729499741
Anonymous
Я использую приведенный ниже код, чтобы получить название города для заданной широты и долготы.
Но код останавливается, когда выполняется эта строка:
var responseElement = XElement.Parse(response);
Он перестает отвечать и не генерирует никаких исключений.
Я предполагаю, что это может быть проблема с асинхронным вызовом.
Может ли кто-нибудь помочь мне с этим или предложить аналогичный код, использующий iOS SDK?
private async Task ReturnCity(string lat, string lon)
{
string city = "None";
string baseUri = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?latlng={0},{1}&sensor=false", lat, lon);
HttpClient client = new HttpClient();
var response = await client.GetStringAsync(baseUri);
var responseElement = XElement.Parse(response);
IEnumerablestatusElement = from st in responseElement.Elements("status") select st;
if (statusElement.FirstOrDefault() != null)
{
string status = statusElement.FirstOrDefault().Value;
if (status.ToLower() == "ok")
{
IEnumerable resultElement = from rs in responseElement.Elements("result") select rs;
if (resultElement.FirstOrDefault() != null)
{
IEnumerable addressElement = from ad in resultElement.FirstOrDefault().Elements("address_component") select ad;
foreach (XElement element in addressElement)
{
IEnumerable typeElement = from te in element.Elements("type") select te;
string type = typeElement.FirstOrDefault().Value;
if(type=="locality")
{
IEnumerable cityElement = from ln in element.Elements("long_name") select ln;
city = cityElement.FirstOrDefault().Value;
return city;
break;
}
}
}
}
}
return city;
}
Я просмотрел отладчик и нашел значение ответа. Это похоже на действительный XML. Есть мысли?
OK
airport
transit_station
establishment
Lisbon Portela Airport (LIS), Alameda das Comunidades Portuguesas, 1700-111 Lisboa, Portugal
Lisbon Portela Airport
Lisbon Portela Airport
Alameda das Comunidades Portuguesas
Alameda das Comunidades Portuguesas
route
Lisboa
Lisboa
locality
political
Lisboa
Lisboa
administrative_area_level_1
political
Portugal
PT
country
political
1700-111
1700-111
postal_code
38.7755936
-9.1353667
APPROXIMATE
38.7623900
-9.1475505
38.7994779
-9.1236185
38.7623900
-9.1475505
38.7994779
-9.1236185
ChIJgwHZFkYyGQ0RRm0DWD6lZgo
route
Lisbon Portela Airport (LIS), Rua E, 1700-111 Lisboa, Portugal
Rua E
R. E
route
Lisbon Portela Airport
Lisbon Portela Airport
Lisboa
Lisboa
locality
political
Lisboa
Lisboa
administrative_area_level_1
political
Portugal
PT
country
political
1700-111
1700-111
postal_code
1700
1700
postal_code_prefix
postal_code
38.7757984
-9.1304833
GEOMETRIC_CENTER
38.7744765
-9.1317496
38.7771745
-9.1290516
38.7748799
-9.1307609
38.7767711
-9.1300403
ChIJjdzMckIyGQ0RvIXYZCCI82k
locality
political
Lisbon, Portugal
Lisbon
Lisbon
locality
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7222524
-9.1393366
APPROXIMATE
38.6913994
-9.2298356
38.7958538
-9.0905718
38.6913994
-9.2298356
38.7958538
-9.0905718
ChIJO_PkYRozGQ0R0DaQ5L3rAAQ
postal_code
1700-111 Lisbon, Portugal
1700-111
1700-111
postal_code
Lisbon
Lisbon
locality
political
Olivais
Olivais
administrative_area_level_3
political
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7661892
-9.1291486
APPROXIMATE
38.7544060
-9.1483947
38.7870843
-9.1239064
38.7544060
-9.1483947
38.7870843
-9.1239064
ChIJS-qk_0UyGQ0RN3v7SZnU9D8
postal_code_prefix
postal_code
1700, Portugal
1700
1700
postal_code_prefix
postal_code
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7600325
-9.1400807
APPROXIMATE
38.7448641
-9.1567550
38.7870843
-9.1239064
38.7448641
-9.1567550
38.7870843
-9.1239064
ChIJdVtq_1kyGQ0RYKU7DsHrABw
administrative_area_level_3
political
Olivais, Portugal
Olivais
Olivais
administrative_area_level_3
political
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7721510
-9.1179465
APPROXIMATE
38.7502229
-9.1483924
38.7870963
-9.0905718
38.7502229
-9.1483924
38.7870963
-9.0905718
ChIJccbEUz4yGQ0RsEKQ5L3rAAU
administrative_area_level_2
political
Lisbon, Portugal
Lisbon
Lisbon
administrative_area_level_2
political
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7222986
-9.1393188
APPROXIMATE
38.6913994
-9.2298356
38.7958538
-9.0905718
38.6913994
-9.2298356
38.7958538
-9.0905718
ChIJMabWPRAzGQ0RRFqNEqmj6AI
administrative_area_level_1
political
Lisbon, Portugal
Lisbon
Lisbon
administrative_area_level_1
political
Portugal
PT
country
political
38.7223263
-9.1392714
APPROXIMATE
38.6731604
-9.5005266
39.3177286
-8.7819208
38.6731604
-9.5005266
39.3177286
-8.7819208
ChIJWxIr4ajVGA0RwCyQ5L3rAAM
country
political
Portugal
Portugal
PT
country
political
39.3998720
-8.2244540
APPROXIMATE
36.9601772
-9.5171107
42.1542048
-6.1902091
32.4037400
-31.2752439
42.1542048
-6.1902091
ChIJ1SZCvy0kMgsRQfBOHAlLuCo
Подробнее здесь: [url]https://stackoverflow.com/questions/30975244/xamarin-google-maps-api[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия