有人能告訴我爲什麼getPlaces()函數返回空格字符串在下面?Google Maps Places API問題與getPlaces()函數
在頭元素我有鏈接到谷歌地圖腳本
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&v=3.exp&key=MyKey&libraries=places"></script>
Javascript代碼:
jQuery(window).load(function() {
var map = new google.maps.Map(document.getElementById('mapCanvas'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false
});
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(41.7033177, -93.0573533),
new google.maps.LatLng(41, -93)
);
map.fitBounds(defaultBounds);
var input = document.getElementById('addressSearch');
var searchBox = new google.maps.places.SearchBox(input);
var markers = [];
google.maps.event.addListener(searchBox, 'places_changed', function() {
var places = searchBox.getPlaces();
for (var i = 0, marker; marker = markers[i]; i++) {
marker.setMap(null);
}
markers = [];
var bounds = new google.maps.LatLngBounds();
for (var i = 0, place; place = places[i]; i++) {
var place = places[i];
var marker = new google.maps.Marker({
map: map,
title: place.name,
position: place.geometry.location,
draggable: true
});
markers.push(marker);
bounds.extend(place.geometry.location);
}
map.fitBounds(bounds);
if (markers.length == 1) map.setZoom(17);
});
google.maps.event.addListener(map, 'bounds_changed', function() {
var bounds = map.getBounds();
searchBox.setBounds(bounds);
});
});
此代碼是從谷歌的開發者網站採取從示例與文本搜索字段,所以它應該工作得很好。 2天前,它運行良好。現在它不。問題是getPlaces()
方法返回一個空格字符串,而不是數組,因爲它應該。我在這裏錯過了什麼?
更新:好的,我的問題還不夠清楚。什麼是搜索框中的自動完成功能。什麼不工作是places_changed
事件,特別是線
var places = searchBox.getPlaces();
的places
變量應包含數組,因此,在未來for
循環,它會創建標記的數組,並把它們在地圖上。相反,它返回的是一個空字符串。
進入「自由車站,加利福尼亞州聖地亞哥的歷史性Decatur路「(Google示例)(https://google-developers.appspot.com/maps/documentation/javascript/examples/places-searchbox)返回2個地方給我。你有沒有工作的例子(或者是一個顯示問題或者jsfiddle的實例)? – geocodezip
在文檔中您看到了google.maps.places.SearchBox()構造函數? – Marcelo
這也是我的問題,但它是在示例中(鏈接在我以前的評論中),只是沒有在地方圖書館文檔(這當然使它危險,因爲無證件的事情可以並且確實會改變......) – geocodezip