Я искал решение в течение нескольких часов, но не могу найти его, я надеюсь, что кто-то может мне помочь, поскольку я новичок в API Google, так вот что я пытаюсь сделать : У меня есть форма с динамическим выпадающим списком для региона и города и на основе выбора пользователя, это будет обновлять маркер на карте Google с помощью infowindow с указанием адреса, lat и long .. моя проблема заключается в отправке формы, карта показывает пустое .. вот мой код:обновление google map on form submit
var Latlong = new google.maps.LatLng(61.10802786270912, 8.883177374999718);
var map;
var geocoder;
var marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var mapOptions = {
zoom: 5,
center: Latlong
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
marker = new google.maps.Marker({
position: Latlong,
map: map,
draggable:true,
title: "Drag Me!"
});
infowindow=new google.maps.InfoWindow();
infowindow.setOptions({
content: "<strong>Drag Marker</strong>"
});
infowindow.open(map,marker);
}
function newmap(selectedregion, selectedcity){
var address = selectedregion+ "," +selectedcity;
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.setZoom(18);
marker.setMap(null);
marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
draggable:true
});
infowindow=new google.maps.InfoWindow();
infowindow.setOptions({
content: "test"
});
infowindow.open(map,marker);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
так что этот код будет вызван перезагрузки страницы:
$(window).load(function() {
var selectedregion = document.getElementById('region').value;
var selectedcity = document.getElementById('city').value;
if(selectedregion == "" && selectedcity == ""){
initialize();
}else{
newmap(selectedregion, selectedcity);
}
});
это SucceS sfully вызывает функцию инициализации при первой загрузке, но она не успешно обрабатывает функцию newmap. Я не использую это: google.maps.event.addDomListener (окно, «загрузка», инициализация); потому что каждый раз, когда форма отправляется, googlemap переходит к своему стандарту LatLng (61.10802786270912, 8.883177374999718). Может ли кто-нибудь помочь мне в этом, пожалуйста.
Ваш код и особенно newmap функция работала со мной. вы также должны показать код формы, потому что это может быть проблемой. вы возвращаете фальшивое событие onsubmit с вашей формой? – Blauharley
форма возвращает true на submit, я попытался предупредить (selectedregion) и alert (selectedcity), и он возвращает значения для меня, так что ничего не неверно с формой. Я попытался изменить функцию newmap() на testmap() с кодом на initialize() и просто измените координаты LatLng, и это сработало хорошо, я просто не мог найти, что не так с newmap() .. –
, поскольку я написал, что это хорошо сработало со мной, так называете это днем;) – Blauharley