2016-03-26 4 views
1

Ich arbeite an Google map api [Hier ist mein in der Nähe von Restaurant zu finden. . . Wenn ich das mache, bekomme ich nur den aktuellen Standort. Ich erhalte keine Informationen in Bezug auf Restaurantdaten.Google Map API, um in der Nähe Restaurant um meinen Platz zu finden

function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      center: { lat: 25.276987, lng: 55.296249 }, 
      zoom: 15 
     }); 

     var infoWindow = new google.maps.InfoWindow({ map: map }); 

     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function (position) { 

       var pos = { 
        lat: position.coords.latitude, 
        lng: position.coords.longitude  
       }; 
       infoWindow.setPosition(pos); 
       infoWindow.setContent('Location found.'); 
       map.setCenter(pos); 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: pos.getPlace().location 
       }); 
       var service = new google.maps.places.PlacesService(map); 
       service.nearbySearch({ 
        location: rak, 
        radius: 5500, 
        type: ['restuarant'] 
       }, callback); 

      }, function() { 
       handleLocationError(true, infoWindow, map.getCenter()); 
      }); 
     } 
     else {    
      handleLocationError(false, infoWindow, map.getCenter()); 
     } 
    } 
+0

Bitte schreiben Sie den tatsächlichen Code in Ihre Frage, anstatt einen Link zu einem Bild. – Roberto

+0

Bitte überprüfen Sie den Code –

Antwort

5

Vielleicht mit dem nearbySearch location-Tag einen Fehler, den Sie stoßen. Sie haben die Variable rak nicht initialisiert und geben einen Nullwert zurück.

das Script Set

<script 
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&libraries=places&callback=initMap" 
    async defer></script> 

Initialisieren Sie Variablen

var map; 
var infowindow; 
var myPlace = {lat: 25.276987, lng: 55.296249 }; 

Rufen Sie Ihren nearbySearch

var service = new google.maps.places.PlacesService(map); 
      service.nearbySearch({ 
       location : myPlace, 
       radius : 5500, 
       type : [ 'restaurant' ] 
      }, callback); 

das Ergebnis der Suche prüfen und dann eine Markierung für jeden gefundenen Standort erstellen

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

function createMarker(place) { 
      var placeLoc = place.geometry.location; 
      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); 
      }); 
     } 

Sie können diesen Code in diesem document finden, wird es gut die richtige Codierung und wie die API zu erklären. Auch hier ist die list of supported location type.

Ich hoffe, das hilft.

Verwandte Themen