Карты Bing, как сделать запрос геокода без перезвона в 7 версии? - PullRequest
0 голосов
/ 30 июня 2011

Я знаю, как сделать запрос геокода bing с помощью функции обратного вызова, например:

function MakeGeocodeRequest(credentials)
         {
            var geocodeRequest = "http://dev.virtualearth.net/REST/v1/Locations/" + document.getElementById('txtQuery').value + "?output=json&jsonp=GeocodeCallback&key=" + credentials;

            CallRestService(geocodeRequest);
         }

         function CallRestService(request) 
         {
            var script = document.createElement("script");
            script.setAttribute("type", "text/javascript");
            script.setAttribute("src", request);
            document.body.appendChild(script);
         }
         function GeocodeCallback(result) 
         {   
            // Do something with the result
         }

(скопировано из MSDN Maps AJAX Control 7.0 ISDK)

В версии Bing Map 6.2 это быловозможность сделать такой запрос, используя следующий код:

map.Find(null, tempDest, null, null, null, null, null, null, null, null,
                                function (a, b, c, d, e) {
...
});

Это было очень полезно, потому что все переменные были определены и готовы к использованию, но в новой версии все мои переменные не определены, и я не хочу делать ихкак глобальный, так вы знаете какое-либо решение, как сделать запрос без такого обратного вызова?

Ответы [ 2 ]

1 голос
/ 29 декабря 2013

Похоже, что версия 7 не поддерживает методы 6.x. Вот пример для 7. Пример из http://www.bingmapsportal.com/isdk/ajaxv7#SearchModule2

Только что добавлено оповещение (topResult.location); линии, чтобы вы увидели информацию о местоположении.

function geocodeRequest() 
{ 
    createSearchManager(); 
    var where = 'Denver, CO'; 
    var userData = { name: 'Maps Test User', id: 'XYZ' }; 
    var request = 
    { 
        where: where, 
        count: 5, 
        bounds: map.getBounds(), 
        callback: onGeocodeSuccess, 
        errorCallback: onGeocodeFailed, 
        userData: userData 
    }; 
    searchManager.geocode(request); 
} 
function onGeocodeSuccess(result, userData) 
{ 

if (result) { 

        map.entities.clear(); 
        var topResult = result.results && result.results[0]; 
        if (topResult) { 
            alert(topResult.location);
            var pushpin = new Microsoft.Maps.Pushpin(topResult.location, null); 
            map.setView({ center: topResult.location, zoom: 10 }); 
            map.entities.push(pushpin); 
        } 
    } 
} 
function onGeocodeFailed(result, userData) { 
    displayAlert('Geocode failed'); 
} 

if (searchManager) 
{ 
    geocodeRequest(); 
} 
else 
{ 
    Microsoft.Maps.loadModule('Microsoft.Maps.Search', { callback: geocodeRequest }); 
}
0 голосов
/ 05 августа 2011

Укажите в параметре url jsonso .Пример: var geocodeRequest = "http://dev.virtualearth.net/REST/v1/Locations/" + document.getElementById ('txtQuery'). Value +"? jsonso = paramValue & output = json & jsonp = GeocodeCallback & key = "+ credentials;

...