Maps API v3 Nearby place search and setInterval

Drop place search result markers at a defined time interval - http://stackoverflow.com/questions/29739752

by Alex Azuero

HTML

<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script>
<div id="map-canvas"></div>

CSS

#map-canvas {
    height: 400px;
}

JavaScript

var map;
    var infowindow = new google.maps.InfoWindow();
    
    function initialize() {
    
        var center = new google.maps.LatLng(59.32522, 18.07002);
    
        var mapOptions = {
            zoom: 12,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            center: center
        };
    
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    
        var request = {
            location: center,
            radius: '5000',
            types: ["store", "bank"]
        };
    
        service = new google.maps.places.PlacesService(map);
        service.nearbySearch(request, callback);
    }
    
    function callback(results, status) {
    
        if (status == google.maps.places.PlacesServiceStatus.OK) {
    
            var i = 0;
            var interval = setInterval(function () {
    
                setMarker(results[i]);
                i++;
    
                if (i === results.length) clearInterval(interval);
    
            }, 1000);
        }
    }
    
    function setMarker(place) {
    
        var marker = new google.maps.Marker({
            map: map,
            position: place.geometry.location
        });
    
        google.maps.event.addListener(marker, 'click', function () {
            infowindow.setContent(place.name);
            infowindow.open(map, this);
        });
    }
    
    initialize();