В настоящее время я разрабатываю инструмент отслеживания продаж и застревает при отображении массива маркеров для геокодированных объектов на карте. Я использую функцию геокодера для поиска геокодированных объектов на расстоянии 0,5 км от моего местоположения, прошедшего через URL. Мой текущий код работает до тех пор, пока в этом радиусе есть только один объект, и я знаю, что мне нужно использовать массив для отображения более одного объекта, но за последние две недели я застрял в этом.Ruby on Rails - Объекты геокодирования в качестве маркера маркера google
stores_controller.rb
def index
@latitude = params[:latitude].to_f
@longitude = params[:longitude].to_f
@stores = current_user.stores
@locations = @stores.near([@latitude, @longitude], 0.5)
end
Карта на моих магазинах/index.html.erb
function initMap() {
<% @locations.each do |store| %>
var lat = <%= store.latitude %>
var lng = <%= store.longitude %>
var mylatlng = {lat: lat, lng: lng}
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: mylatlng
});
var marker = new google.maps.Marker({
position: mylatlng,
map: map,
animation: google.maps.Animation.DROP,
});
google.maps.event.addListener(marker, 'click', function() {
var c = confirm('Would you like to visit this store?')
if (c === true) {
window.location.href = '<%= store_path(store) %>';
}
if (c === false) {
window.location.href = '<%= dashboard_path %>';
}
});
var contentString = 'Please click on this Marker to visit' + ' ' + '<%= store.storename %>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
infowindow.open(map, marker);
});
}
<% end %>
Путь приложение устанавливается там будет не более двух или 3-х объектов, в то время, и я знаю, что JSON это вариант, но я надеюсь, что был бы способ избежать этого. Все ресурсы, которые я читал о массивах карт, включают в себя ручную передачу параметров массивов, но мне нужно сделать это динамически, видя, что объект будет варьироваться от rep до rep.
Заранее благодарим за любую помощь.
Благодарим за ответ. Я по-прежнему новичок как с Rails, JS, JQuery, так и с картами Google, и следил за учебниками по этому вопросу. Я пробовал ваш код, он не выдает никаких ошибок, но не отображает карту или какие-либо маркеры. Используя Chrome Developer Tools, он также не выдает никаких ошибок, но, похоже, не хочет работать. Я также пытался немного поиграть с кодом, но безрезультатно. Может быть, я должен использовать маркерный массив для маркера, видя, что может быть больше одного хранилища, загруженного за раз в массиве местоположений? Еще раз спасибо за любую помощь. –