Карты Bing, поиск результатов поиска по нескольким геокодам (Вы имели в виду: Функциональность) - PullRequest
0 голосов
/ 27 марта 2012

надеюсь, что все хорошо.

Я использую версию 7.0.

Этим утром я боролся с чем-то, что, на мой взгляд, должно быть довольно простым. Предоставление альтернативных результатов поиска в сценарии поиска магазинов. (Прямо как здесь - http://www.bing.com/maps)

Я отправляю запрос геокодирования в службу Bing Maps Rest следующим образом:

var geocodeRequest = "http://dev.virtualearth.net/REST/v1/Locations?query=" + encodeURI(searchString) + "&output=json&jsonp=GeocodeCallbackSearch&key=" + credentials;

Это все прекрасно работает! Я могу захватить мой результат, возвращенный в мою функцию, и анализировать его очень хорошо, если пользователь набрал запрос, который имел соответствующий геокод.

function GeocodeCallbackSearch(result) {
    try
    {
        alert(result.resourceSets[0].resources.length);
        // When the user searches an address that isn't quite right, I notice that the 
        // Length of the result set is greater then 1.
        // I would like to get at these so I can provide the "Did you Know"
        // functionality.

        // This is where I am having problems accessing the other results
        for (var i =0; i < result.resourceSets[0].resources.length;i++)
        {
           alert (result.resourceSets[i].resources[i].name);
        }
    }
    catch(err){
        alert(err.message)
    }

Ошибка: я получаю result.resourceSets [i] .resources [i] .name не определено.

Я знаю, что они где-то похоронены, потому что длина иногда больше 1! Понимаю ли я, что result.resourceSets [0] .resources.length это количество возвращаемых результатов геокодирования?

Спасибо заранее!

1 Ответ

0 голосов
/ 27 марта 2012
for (var i =0; i < result.resourceSets[0].resources.length;i++)
{
   alert (result.**resourceSets[i]**.resources[i].name);
}

Легкое исправление, шрифт нужно менять, конечно!

// This is where I am having problems accessing the other results
        for (var i =0; i < result.resourceSets[0].resources.length;i++)
        {
           alert (result**.resourceSets[0]**.resources[i].name);
        }
...