谷歌地图附近的地方

谷歌地图附近的地方

问题描述:

不要任何人有想法如何我可以通过多种类型的types在谷歌地图pnearby地方搜索谷歌地图附近的地方

var map; 
var infowindow; 

function initMap() { 
    var pyrmont = {lat: -33.867, lng: 151.195}; 

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

    infowindow = new google.maps.InfoWindow(); 

    var service = new google.maps.places.PlacesService(map); 
    service.nearbySearch({ 
    location: pyrmont, 
    radius: 500, 
    types: ['store'] 
    }, callback); 
} 

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); 
    }); 
} 

我试着写在许多语法如下类型,但它显示错误的地方。

types: 'bank|bar|airport' 
types: ['bank','bar'] 
types: ['bank'|'bar'] 

做任何人有更好的解决办法,我会升值。

+0

你所说的 “显示错误的地方” 呢?根据文档,您使用的第一种语法应该是正确的。 –

+0

是的,我同意所以,我也认为相同,但是当我使用第一语法,它显示我酒店也和水族馆,但没有银行,所以我增加了半径以获得更好的结果,但它不显示任何银行 – Lakshya

您错过了必需属性query。这为API提供了搜索关键字,例如商家名称。这些类型提供额外的过滤器来提供它认为与您的请求最相关的信息。

此方法采用具有以下字段的请求:

  • 查询(所需),其上进行搜索,例如,该文本串: “餐馆”。商家信息服务会根据此字符串返回基于 的候选匹配项,并根据他们感知的 相关性对结果进行排序。
  • 类型 - 包含Google Places API中支持的一种或多种支持类型的数组:支持的地方类型列表。该服务将返回匹配任何指定类型的 结果。

var map; 
 
var infowindow; 
 

 
function initMap() { 
 
    var timesSquare = { 
 
    lat: 40.759011, 
 
    lng: -73.984472 
 
    }; 
 

 
    map = new google.maps.Map(document.getElementById('map'), { 
 
    center: timesSquare, 
 
    zoom: 18 
 
    }); 
 

 
    infowindow = new google.maps.InfoWindow(); 
 

 
    var service = new google.maps.places.PlacesService(map); 
 
    service.nearbySearch({ 
 
    location: timesSquare, 
 
    radius: 50, 
 
    query: 'new york', 
 
    types: ['bank'|'bar'] 
 
    }, callback); 
 
} 
 

 
function callback(results, status) { 
 
    if (status === google.maps.places.PlacesServiceStatus.OK) { 
 
    console.log(results); 
 
    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); 
 
    }); 
 
}
#map { 
 
    min-width: 100%; 
 
    height: 400px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js?v=3&callback=initMap&libraries=places" async defer> 
 
</script> 
 
<div id="map"></div>

+0

我们如何更改类型,例如我需要(学校,学院等)来显示。我试图像这样改变,(类型:['colleges'|'school'])。如何获取此数据 – Vijaykarthik

+0

以下是受支持的类型https://developers.google.com/places/supported_types –