Как прочитать возвращенное значение XML из карт Google - PullRequest
2 голосов
/ 19 сентября 2011

Я пытаюсь назвать геокод карты Google и следую примеру на их веб-странице, чтобы применить его к моему

http://code.google.com/apis/maps/documentation/geocoding/index.html

в этом примере API геокодирования запрашивает XML-ответ для идентичный запрос показан выше для "1600 Amphitheatre Parkway, Mountain View, CA ": http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false XML, возвращенный по этому запросу, показан ниже.

Теперь я пытаюсь запустить этот URL в моем приложении c # winforms

    string url = "http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false";
    WebRequest req = HttpWebRequest.Create(url);
    WebResponse res = req.GetResponse();
    StreamReader sr = new StreamReader(res.GetResponseStream());
    try
    {
        Match coord = Regex.Match(sr.ReadToEnd(), "<coordinates>.*</coordinates>");
        var b = coord.Value.Substring(13, coord.Length - 27);
    }
    finally
    {
        sr.Close();
    }

Однако, похоже, он ничего не возвращает, и поэтому моя строка var b дает ошибку индекса за пределами границ. Кто-нибудь может указать мне правильное направление, чтобы хотя бы пример работал, чтобы я мог применить логику к своему собственному приложению?

Спасибо

1 Ответ

4 голосов
/ 19 сентября 2011

Если вы перейдете по ссылке "http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false" прямо в браузере, вы увидите, что она возвращает. Она выдает ошибку REQUEST DENIED.

Проблема вызвана параметром sensor = true_or_false.Вы должны выбрать, хотите ли вы, чтобы оно было истинным или ложным. Google выразил это так в своем примере, чтобы вам пришлось явно решать для себя. Этот параметр указывает, использует ли ваше приложение датчик местоположения или нет. В вашем случаеДумаю, нет, поэтому установите значение false.

Если вы измените используемую ссылку на http://maps.googleapis.com/maps/api/geocode/xml?address=1600%20Amphitheatre%20Parkway,%20Mountain%20View,%20CA&sensor=false, Я думаю, вы получите ожидаемые результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...