Отсутствуют динамические маркеры GMaps V3 - PullRequest
0 голосов
/ 09 сентября 2011

Я написал некоторый код для извлечения почтовых индексов из базы данных MySQL через вызов ajax, геокодирование их, а затем создание из них маркеров в GMap.Маркеры кликабельны, чтобы показать некоторые демографические данные.Это работает, если я оставляю предупреждение в каждом цикле без комментариев.Если нет, то показывает только около 8 маркеров.Любая помощь приветствуется.Соответствующий код:

function initialize() {
var geocoder = new google.maps.Geocoder();
var markers = [];
var latlng = new google.maps.LatLng("33.7463915", "-117.86044720000001");
var myOptions = {
    zoom: 11,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

$.ajax({
    url: 'getzips.php',
    dataType: 'json',                         
    success: function (data) {                              
        $.each(data.rows, function(i, item) {
                //alert(item.zip);
                if (geocoder) {
                    geocoder.geocode({ 'address': item.zip }, function (results, status) {

                    if (status == google.maps.GeocoderStatus.OK) {
                        var latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());                        
                        var marker = new google.maps.Marker({
                            position: latlng,
                            map: map,
                            title: item.zip 
                            });
                        var infowindow = new google.maps.InfoWindow({  
                            content: item.zip  
                        });  
                        google.maps.event.addListener(marker, "click", function() {                                 
                            $.ajax({
                                url: 'getinfo.php?zipcode=' + marker.title,
                                success: function(data){
                                  infowindow.setContent(data);
                                  infowindow.open(map, marker);
                                }
                             });       
                        });
                        markers.push(marker);                   
                    }
                    });
                }
                else
                    alert("geocode error");
            });
        }
    }); 
    //alert(markers.length);
}

1 Ответ

0 голосов
/ 09 сентября 2011

Google Geocoding API имеет ограничения по запросу и скорости. Вам нужно замедлить при запросе.

Использование API геокодирования Google ограничено 2500 запросами геолокации в день.

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

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