我已经在我的ruby on rails Web应用程序上实现了Google地图。我可以很好地显示地图,也可以放置标记。我的问题是,我有2个JavaScript函数来刷新地图并在地图上放置标记。我希望能够保留当前地图,而只需使用我的功能向地图添加另一个标记。如何阻止我的地图刷新以显示多个标记?
// application.js
var map;
function initMap() {
var lat=29.732585;
var lng=-95.462830;
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 29.7604, lng: -95.3698},
zoom: 10.25,
});
var marker = new google.maps.Marker({
position: {lat:29.732585,lng:-95.462830},
map: map
});
}
function getEmployee() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 29.7604, lng: -95.3698},
zoom: 10.25,
});
var marker = new google.maps.Marker({
position: {lat:29.7154,lng:-95.3893},
map: map
});
}
function getLocation() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 29.7604, lng: -95.3698},
zoom: 10.25,
});
var marker = new google.maps.Marker({
position: {lat:29.7560,lng:-95.3573},
map: map
});
}
答案 0 :(得分:1)
调用getEmployee()
或getLocation()
时,可以通过调用new google.maps.Map
重新创建地图。这就是为什么您的地图在每次通话时都会刷新的原因。
只需删除从这两个函数中重新创建的地图即可。您可以在initMap()
调用中创建地图,并将其存储在全局变量map
中,以便可以在创建标记的getEmployee()
和getLocation()
中使用。