向 rails 地图添加多个标记
Add multiple markers to rails map
我已经在 rails Web 应用程序的 ruby 上实现了 google 地图。我可以很好地显示地图,也可以很好地放置标记。我的问题是我有 2 个 JavaScript 函数可以刷新地图并在地图上放置一个标记。我希望能够保留当前地图,并使用我的函数向地图添加另一个标记。如何阻止我的地图刷新以显示超过 1 个标记?
// 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
});
}
当调用 getEmployee()
或 getLocation()
时,您通过调用 new google.maps.Map
重新创建地图。这就是为什么您的地图在每次调用时都会刷新。
只需删除从这 2 个函数重新创建的地图。您在 initMap()
调用上创建了一个地图并将其存储在全局变量 map
中,因此它可以在您创建标记的 getEmployee()
和 getLocation()
中使用。
我已经在 rails Web 应用程序的 ruby 上实现了 google 地图。我可以很好地显示地图,也可以很好地放置标记。我的问题是我有 2 个 JavaScript 函数可以刷新地图并在地图上放置一个标记。我希望能够保留当前地图,并使用我的函数向地图添加另一个标记。如何阻止我的地图刷新以显示超过 1 个标记?
// 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
});
}
当调用 getEmployee()
或 getLocation()
时,您通过调用 new google.maps.Map
重新创建地图。这就是为什么您的地图在每次调用时都会刷新。
只需删除从这 2 个函数重新创建的地图。您在 initMap()
调用上创建了一个地图并将其存储在全局变量 map
中,因此它可以在您创建标记的 getEmployee()
和 getLocation()
中使用。