[英]Google Maps Places API
我是Javascript新手,但似乎無法正常運行此腳本。
設法使地理位置正常工作,但加載后沒有顯示任何地點標記。 嘗試了很多東西,你們可以幫我嗎?
var map;
function initialize() {
var mapOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 13
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var input = document.getElementById('searchtxt');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.bindTo('bounds', map);
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
var request = {
location: pos,
radius: 1500,
types: ['restaurant']
};
alert('OK -> ' + request); //THIS DOESN'T SHOW. WHY??
var service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
map.setCenter(options.position);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
} else {
}
}
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);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
甚至ALERT也不會顯示,但是如果我將其放在var request語句之前,它會顯示:“確定->未定義”。
怎么了?
謝謝。
getCurrentPosition()
被異步觸發。 這意味着未在此范圍內設置var pos
變量。 這使pos
未定義。 當您嘗試在var options
對象中進行設置時,將引發錯誤。 這會破壞代碼,並且永遠不會觸發alert()
。
alert()
在對象之前起作用,因為尚未發生錯誤的分配( location: pos,
。
該錯誤已明確顯示在控制台中,因此我建議您學習以這種方式進行調試。
這是我之前問過的一個問題,可能會對您有所幫助: 觸發回調后如何使用/存儲JSON數據?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.