2012-08-21 4 views
0

Как я могу запросить имя страны, используя позиции широты и долготы, используя YQL? Или лучше, чтобы я мог указать на столбцы таблицы?YQL для стран

ответ

-1

Ответ, который я искал был:

SELECT * FROM geo.placefinder WHERE text=\"{0}\" and gflags=\"r 

Текст является широта и долгота, например, -27,28

Это вернет xml с информацией о стране.

+0

Это 'SELECT' заявление не работает, как и я не уверен, что бы это исправить' \ -: ' – hippietrail

+0

Вы должны кодировать выберите запрос и добавьте его в URL. – SpaceApple

+0

О, я имею в виду, что он даже не работает в консоли YQL. Сбежавшие двойные кавычки, вероятно, являются проблемой, я не уверен, что {0} - это какой-то шаблон? И в последнем «r» отсутствует заключительная цитата. Это приводит к ошибке: 'Синтаксическая ошибка запроса (строки) [строка 1:41 нет жизнеспособной альтернативы для символа '& amp; # 92;', строка 1:63 несимметричный символ '' ожидающий '' ']'. [Консоль YQL ссылка] (http://developer.yahoo.com/yql/console/?q=SELECT%20*%20FROM%20geo.placefinder%20WHERE%20text%3D%5C%22%7B0%7D%5C%22%20and % 20gflags% 3D% 5C% 22r) – hippietrail

0

Вышеприведенный запрос действительно работает, но позвольте мне пройти через все этапы.

Построение запроса url к yahoo и создание запроса.

string url = string.Format("http://query.yahooapis.com/v1/public/yql?q={0}", HttpUtility.UrlEncode("SELECT * FROM geo.placefinder WHERE text=\"-27,28\" and gflags=\"r\"")); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "GET"; 

Получение данных ответа:

using (WebResponse response = request.GetResponse()) 
{ 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(response.GetResponseStream()); 

    geo.CountryName = doc.SelectSingleNode("./query/results/Result/country").InnerText; 
    geo.AlphaCode = doc.SelectSingleNode("./query/results/Result/countrycode").InnerText; 
    geo.City = doc.SelectSingleNode("./query/results/Result/city").InnerText; 
    geo.State = doc.SelectSingleNode("./query/results/Result/state").InnerText;   

} 
Смежные вопросы