2016-06-03 11 views
0

Ich habe Places API verwendet, um Orte wie Restaurants und Hotels in der Nähe eines bestimmten Standorts zu finden. Ich möchte auch Punkte von Interesse oder Sehenswürdigkeiten in der Nähe des angegebenen Ortes erhalten.So erhalten Sie Sehenswürdigkeiten (Points of Interest) in der Nähe eines bestimmten Standorts mit Google Places API

var service = new google.maps.places.PlacesService(map); 
service.nearbySearch({ 
     location: latlng,   
     radius: 1500, 
    }, function (results, status) { 
     if (status === google.maps.places.PlacesServiceStatus.OK) { 
      var type1 = results[i].types[0]; 
      var type2 = results[i].types[1]; 
      if (type1 == 'point_of_interest' || type2 == 'point_of_interest') { 
       //process place details 
      } 
     } 
    }); 

Eg: Was habe ich versucht, ist unten angegeben Für ein Wahrzeichen Suche in der Nähe von Champ de Mars in Paris, sollte es Orte zurückkehren, wie Eiffelturm, die ganz in der Nähe ist. Es gibt jedoch nur Orte wie Hotels und Unterkünfte zurück.

Wie kann ich Punkte in der Nähe des angegebenen Standorts abrufen? Jede Hilfe bei der Lösung dieses Problems wäre willkommen.

Antwort

2

Sie können einen Schlüsselwortparameter in der Ortssuchanforderung verwenden. Gemäß dem Dokumentationsschlüsselwortparameter lautet:

Ein Begriff, der mit allen verfügbaren Feldern verglichen werden soll, einschließlich, aber nicht beschränkt auf Name, Typ und Adresse, sowie Kundenrezensionen und andere Inhalte von Drittanbietern.

So etwas wie keyword: "POI" kann einen Trick machen. Bitte sehen Sie sich das folgende Beispiel an.

Code-Schnipsel:

var map, service; 
 

 
function initialize() { 
 
    var champdemars = new google.maps.LatLng(48.8556475,2.2986304); 
 
    var mapOptions = { 
 
     zoom:14, 
 
     center: champdemars 
 
    }; 
 
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
 
    service = new google.maps.places.PlacesService(map); 
 
    service.nearbySearch({ 
 
     location: champdemars,   
 
     radius: 1500, 
 
     keyword: "POI" 
 
    }, function (results, status) { 
 
     if (status === google.maps.places.PlacesServiceStatus.OK) { 
 
      results.forEach(function (p) { 
 
       var m = new google.maps.Marker({ 
 
        position: p.geometry.location, 
 
        icon: { 
 
        url: p.icon, 
 
        scaledSize: new google.maps.Size(24,24) 
 
        }, 
 
        title: p.name, 
 
        map: map 
 
       });     
 
      }); 
 
     } else { 
 
      alert(status); 
 
     } 
 
    });   
 
}
html, 
 
body, 
 
#map-canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<div id="map-canvas"></div> 
 
<script async defer src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places&callback=initialize"></script>

Wie Sie POIs wie Eiffelturm, das Armee-Museum oder UNESCO jetzt erscheinen auf der Karte sehen können.

+0

Vielen Dank! Das hat perfekt funktioniert! :) – Fleur

Verwandte Themen