dburles / meteor-google-maps

🗺 Meteor package for the Google Maps Javascript API v3
https://atmospherejs.com/dburles/google-maps
MIT License
196 stars 48 forks source link

PlacesService not working #127

Closed ankitv89 closed 8 years ago

ankitv89 commented 8 years ago

Hi,

This is my code. ON running, I am not getting the places in return. Can anyone point out what I am doing wrong?

Template.map.helpers({
    exampleMapOptions: function() {
        // Make sure the maps API has loaded
        if (GoogleMaps.loaded()) {
            // Map initialization options
            var data=Test.findOne().address.geopoint;
            var lat=data[1];
            var lng=data[0];
            console.log([lat,lng]);
            return {
                center: new google.maps.LatLng(lat, lng),
                zoom: 14
            };
        }
    }
});

Template.map.onCreated(function() {
    var self = this;

    GoogleMaps.ready('exampleMap', function(map) {
        var marker;

        // Create and move the marker when latLng changes.
        self.autorun(function() {
            var data=Test.findOne().address.geopoint;
            var lat=data[1];
            var lng=data[0];

            if (! lat && ! lng)
                return;

            // If the marker doesn't yet exist, create it.
            if (! marker) {
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(lat, lng),
                    map: map.instance
                });
            }
            // The marker already exists, so we'll just change its position.
            else {
                marker.setPosition([lat,lng]);
            }

            // Center and zoom the map view onto the current position.
            map.instance.setCenter(marker.getPosition());
            map.instance.setZoom(14);

            var pyrmont = new google.maps.LatLng(lat,lng);

            // map = new google.maps.Map(document.getElementById('exampleMap'), {
            //     center: pyrmont,
            //     zoom: 15
            // });

            var request = {
                location: pyrmont,
                radius: '5000',
                types: ['store']
            };

            service = new google.maps.places.PlacesService(map);
            service.nearbySearch(request, callback);

        function callback(results, status) {
            if (status == google.maps.places.PlacesServiceStatus.OK) {
                for (var i = 0; i < results.length; i++) {
                    var place = results[i];
                    createMarker(results[i]);
                }
            }
        }

        });
    });
});
ankitv89 commented 8 years ago

Solved by replacing map with map.instance