Почему SQL Server не использует индекс для вычисляемого столбца?

Вы используете неправильный путь setTimeout . Сигналом функции (одной из) является setTimeout(callback, delay). Таким образом, вы можете легко указать, какой код следует запускать после какой задержки.

var codeAddress = (function() {
    var index = 0;
    var delay = 100;

    function GeocodeCallback(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            new google.maps.Marker({ map: map, position: results[0].geometry.location, animation: google.maps.Animation.DROP });
            console.log(results);
        }
        else alert("Geocode was not successful for the following reason: " + status);
    };

    return function(vPostCode) {
        if (geocoder) setTimeout(geocoder.geocode.bind(geocoder, { 'address': "'" + vPostCode + "'"}, GeocodeCallback), index*delay);
        index++;
    };
})();

Таким образом, каждый вызов codeAddress() приведет к тому, что geocoder.geocode() будет вызван через 100 мс позже после предыдущего вызова.

Я также добавил анимацию в маркер, чтобы у вас был приятный эффект анимации с добавлением маркеров для сопоставления один за другим. Я не уверен, каков текущий лимит Google, поэтому вам может потребоваться увеличить значение переменной delay.

Кроме того, если вы каждый раз геокодируете одни и те же адреса, вместо этого вы должны сохранить результаты геокодирования на свой db, а в следующий раз просто используйте их (чтобы вы сэкономили некоторый трафик, и ваше приложение будет немного бит быстрее)

16
задан Chry Cheng 17 March 2017 в 06:05
поделиться