0
當用戶在地圖上拖動標記時,我無法獲取位置信息。如果用戶點擊地圖並放置標記,但不拖動標記,則代碼工作正常。我不知道爲什麼它不工作?任何幫助都會被忽視。繼承人我的代碼谷歌地圖地理編碼器無法正常工作
function initialize() {
var latLng = new google.maps.LatLng(53.34235267846957, -6.264953253906242);
map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 7,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
marker = new google.maps.Marker({
map: map,
draggable: true
});
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
updateMarkerPosition(marker.getPosition());
geocodePosition(event.latLng);
});
google.maps.event.addListener(marker, 'position_changed', function() {
updateMarkerPosition(marker.getPosition());
geocodePosition(latLng);
});
google.maps.event.addListener(marker, 'dragend', function() {
geocodePosition(marker.getPosition());
});
}
function placeMarker(location) {
if (marker) {
marker.setPosition(location);
map.setCenter(location);
} else {
marker = new google.maps.Marker({
position: location,
map: center
});
}
}
var geocoder = new google.maps.Geocoder();
var geoTimer = setInterval(geocoder, 200);
var geoIndex = 0;
function geocodePosition(pos) {
if (geoIndex < 10) {
geoIndex++;
geocoder.geocode({ latLng: pos }, function(responses, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (responses && responses.length > 0) {
updateMarkerAddress(responses[0].formatted_address);
} else {
updateMarkerAddress('Cannot determine address at this location.');
}
}else{ alert('Cannot determine address at this location.'+status)}
});
}
else {
clearInterval(geoTimer);
}
}
function updateMarkerPosition(latLng) {
document.getElementById('info').innerHTML = [
latLng.lat(),
latLng.lng()
].join(', ');
}
function updateMarkerAddress(str) {
document.getElementById('matchAdd').style.display="block";
document.getElementById('address1').value = str;
document.getElementById('address').innerHTML = str;
}
// Onload handler to fire off the app.
google.maps.event.addDomListener(window, 'load', initialize);
}
它不起作用?你是否在回覆中獲得了OVER_QUERY_LIMIT狀態? (看起來好像你正在檢查狀態) – geocodezip
你是什麼意思標記狀態?它只是返回「無法確定此地點的地址」。 @geocodezip – CoffeeTime
不是「標記狀態」,地理編碼操作的狀態。 [geocoder](https://developers.google.com/maps/documentation/javascript/reference#Geocoder)回調函數簽名是geocode(request:GeocoderRequest,callback:function(Array。,GeocoderStatus))' 。你沒有看GeocoderStatus。 –
geocodezip