我正在創建一個頁面,其中標記固定在地圖的中心,即使用戶平移/縮放地圖。當用戶點擊標記時,它會顯示標記的完整地址。地理編碼器會自動將谷歌地圖移動到左側
問題是,當我提供results[0].formatted_address
時,infoWindow.setContent()
顯示了一個字符串,但它將地圖顯示在左側(並且不顯示infoWindow
)。
下面的代碼是我擁有的反向地理編碼。警報功能(我已取消註釋)正確顯示地址。
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': input}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
//alert(results[0].formatted_address);
infoWindow.setContent(results[0].formatted_address);
infoWindow.open(map,marker);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
而且我的完整JavaScript代碼:
var map;
var marker;
var infoWindow = new google.maps.InfoWindow();
function initialize() {
function setUpMap(){
var mapOptions = {
zoom: 14,
center: new google.maps.LatLng(22.519422, 88.35741400000006),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
google.maps.event.addListener(map, 'center_changed', function() {
removeMarker();
});
google.maps.event.addListener(map, 'idle', function() {
setMarker();
});
}
function removeMarker(){
marker.setMap(null);
}
function setMarker(){
marker = new google.maps.Marker({
position: map.getCenter(),
map: map,
title:"Hello World!"
});
google.maps.event.addListener(marker, 'click', function() {
var input = marker.getPosition();
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': input}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
//alert(results[0].formatted_address);
infoWindow.setContent(results[0].formatted_address);
infoWindow.open(map,marker);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
});
}
setUpMap();
}
google.maps.event.addDomListener(window, 'load', initialize);
我認爲問題是,當用戶點擊該標記,不知何故setMarker()
被調用。我無法真正發現問題的來源。任何人都可以幫我找到它嗎?
請提供表現出的問題(對我來說是給定的代碼沒有問題) – 2014-10-18 09:29:28
,當你點擊了標記,它沒有鍋演示往左邊? – j4rey89 2014-10-18 09:59:31
完整的JavaScript我已經在我的問題提交。該html是
– j4rey89 2014-10-18 10:03:57