当我在Google中搜索任何相当大的位置时,结果页面会包含一个侧栏,其中包含有关该城市的信息,并且通常包含一系列兴趣点:
如果我点击“查看15+更多”链接,我会看到更多可滚动视图:
有没有办法通过Places API获取这些地方(或类似的地方)?您可以根据位置进行附近的文本和雷达搜索,并且您必须指定一种类型(来自this list),或者您可以同时使用types
数组作为几个,但它是弃用。
我的主要问题是Places API为您提供了相当多的结果,通常不是特别相关或值得注意的。您如何选择合适的类型,并获得最佳景点? Google自己的搜索结果页面可以很好地选择一些主要景点。
例如,在附近进行搜索时,如果省略type
参数,我主要只是获取伦敦市中心的酒店列表:
function initialize() {
var centre = new google.maps.LatLng(51.506974, -0.127488);
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 15,
center: centre,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
location: centre,
radius: 1000
}, function (results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
console.log(results[i].name);
}
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
html, body, #map { width: 100%; height: 100% }
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places"></script>
<div id="map"></div>
返回:
如果我在请求中添加type: ['museum']
,我会得到相当随机的列表。前5个左右都不错,然后有点不对劲:
或者,任何可能具有相似(但更好)结果的第三方API都可能有用。