#ruby-on-rails #ruby #ruby-on-rails-3 #google-maps #gmaps4rails
#ruby-on-rails #ruby #ruby-on-rails-3 #google-карты #gmaps4rails
Вопрос:
Пытаюсь заставить gmaps4rails работать в проекте rails 3. У меня все настроено в соответствии с демонстрацией, но в моем представлении элементы управления картой отображаются только поверх серого фона, где должна быть карта. Пробовал это в Chrome и safari. Есть мысли?
В модели:
acts_as_gmappable :process_geocoding => false
def gmaps4rails_address
"#{address}, #{city}, #{state} #{zip}"
end
В контроллере:
@venues = Venue.limit(5)
@venue_map_data = @venues.to_gmaps4rails
В представлении:
<%= gmaps4rails(@venue_map_data) %>
В макете application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>MapTest</title>
<%= stylesheet_link_tag :all %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
<%= yield :head %>
</head>
<body>
<%= yield %>
<%= yield :scripts %>
</body>
</html>
Материал Javascript:
<script src="/javascripts/gmaps4rails.js" type="text/javascript"></script>
<script type="text/javascript" src='http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js'></script>
<script type="text/javascript" charset="utf-8">
function gmaps4rails_init() {
Gmaps4Rails.map_options.auto_adjust = true;
Gmaps4Rails.initialize();
Gmaps4Rails.markers = [{"longitude": "37.742956", "latitude": "-122.421695"},
{"longitude": "37.742668", "latitude": "-122.421735"},
{"longitude": "37.742578", "latitude": "-122.42178"},
{"longitude": "37.742862", "latitude": "-122.421575"},
{"longitude": "37.743123", "latitude": "-122.421485"}];
Gmaps4Rails.create_markers();
if(typeof gmaps4rails_callback == 'function') { gmaps4rails_callback(); }
}
function gmaps4rails_loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=falseamp;libraries=geometryamp;callback=gmaps4rails_init";
document.body.appendChild(script);
}
window.onload = gmaps4rails_loadScript;
</script>
Данные о месте проведения, собранные в @venues:
имя, адрес, город, штат, почтовый индекс, широта, долгота
Ресторан Altena, 3346 Mission St, Сан-Франциско, Калифорния, 94110, -122.421695, 37.742956
ЛА Морена Латиноамериканская, 3391 Mission St, Сан-Франциско, Калифорния, 94110, -122.421735, 37.742668
Коста-дель-Соль II, 3385 Mission St, Сан-Франциско, Калифорния, 94110, -122.42178, 37.742578
Бар El Amigo, 3355 Mission St, Сан-Франциско, Калифорния, 94110, -122.421575, 37.742862
Клуб тридцати трехсот, 3300 Mission St, Сан-Франциско, Калифорния, 94110, -122.421485, 37.743123
Комментарии:
1. У вас есть yield: скрипты в нижнем колонтитуле? Не могли бы вы вставить созданный js?
2. У меня есть yield: scripts в нижнем колонтитуле и yield: head в заголовке.
Ответ №1:
Черт, только что получил это после 20 минут просмотра взад и вперед…
Ничего общего с драгоценным камнем: посмотрите на свои координаты:
Gmaps4Rails.markers = [{"longitude": "37.742956", "latitude": "-122.421695"},
{"longitude": "37.742668", "latitude": "-122.421735"},
{"longitude": "37.742578", "latitude": "-122.42178"},
{"longitude": "37.742862", "latitude": "-122.421575"},
{"longitude": "37.743123", "latitude": "-122.421485"}]
Вы помещаете свои широты в таблицу долгот и наоборот.
Долгота = [-180, 180]
Широта = [-90, 90]
Комментарии:
1. Вы правы, сэр, это была ошибка в отдельной библиотеке геокодирования, которую я использовал, которая поменяла широту / lon. Спасибо! Кстати, отличная жемчужина.