谷歌地图附近的地方
问题描述:
不要任何人有想法如何我可以通过多种类型的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']
做任何人有更好的解决办法,我会升值。
答
您错过了必需属性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 –
你所说的 “显示错误的地方” 呢?根据文档,您使用的第一种语法应该是正确的。 –
是的,我同意所以,我也认为相同,但是当我使用第一语法,它显示我酒店也和水族馆,但没有银行,所以我增加了半径以获得更好的结果,但它不显示任何银行 – Lakshya