gmaps4rails 1.4.8, плагин infobox 1.9, рельсы 3.2.2 - PullRequest
1 голос
/ 31 марта 2012

У меня была версия gmps4rails gem 1.4.5, хорошо работающая в моем приложении Rails 3.2.2.Я только что взял пример установки infobox, который был описан в документации 1.4.5 в то время.Выглядело прекрасно!

Так что я наконец-то нашел время проверить его на IE8, и фон инфобокса отсутствует, на Safari и Firefox я получаю красивый желтый цвет с непрозрачностью% 75, на IE8 я вообще не получаю фон.

После возни с CSS я сдался и решил взять последнюю версию gmaps4rails 1.4.8.Я заметил, что теперь он поддерживает плагин Google Infobox.js.Поэтому я отслеживаю его и обнаруживаю, что существует несколько версий, не зная, какая версия работает с gmaps4rails 1.4.8, я выбираю infobox.js 1.9, самую последнюю версию.

Поэтому я вставляю ее в приложение / assets /googlemaps.js проявляется так:

//= require infobox.js
//= require ./gmaps4rails.base.js.coffee
//= require ./gmaps4rails.googlemaps.js.coffee

Я пробовал несколько разных вариантов того, когда включается infobox.js.

Я запускаю все это, как в usamap.html..erb:

<%= javascript_include_tag "lbrokers" %>
<%= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "infobox", "auto_adjust"=>false}}) %>

Когда манифест lbrokers.js выглядит следующим образом:

//= require gmaps4rails/googlemaps.js

Когда я попадаю на эту страницу, я получаю следующее:

google is not defined
http://localhost:3000/assets/infobox.js?body=1
Line 128

ЭтоПрошло несколько месяцев между тем, как я изначально установил gmaps4rails, и сейчас.Несмотря на то, что я установил 1.4.8 Gem, ДЕЙСТВИТЕЛЬНО я просто взял gmaps4rails.base.js.coffee и gmaps4rails.googlemaps.js.coffee из gmaps4rails 1.4.8 на Github и вставил их содержимое в предыдущие файлы приложения/ активы / javascripst / gmaps4rails.Это файл макета, созданный до вызова usamap.html.erb:

<% content_for :html_foot do %>
  <%= yield :scripts %>
  <script type="text/javascript">
  $(document).ready(function() {
    var centerpoint = new google.maps.LatLng(38, -97);
    gMap = new google.maps.Map(document.getElementById('map')); 
    gMap.setCenter(centerpoint);
  });
  Gmaps.map.infobox = function(boxText) {
    return {
      content: boxText
      ,disableAutoPan: false
      ,maxWidth: 0
      ,pixelOffset: new google.maps.Size(-140, 0)
      ,zIndex: null
      ,boxStyle: { 
      background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat"
        ,opacity: 0.75
        ,width: "380px"
      }
      ,closeBoxMargin: "10px 2px 2px 2px"
      ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
      ,infoBoxClearance: new google.maps.Size(1, 1)
      ,isHidden: false
      ,pane: "floatPane"
      ,enableEventPropagation: false
   }};  
   </script>
<% end %>

Это та же самая настройка infobox, которая отлично работала на gmaps4rails 1.4.5.Теперь, когда я использую плагин infobox.js, noworky!

Я где-то ошибся, либо infobox.js 1.9 был неправильным выбором.Или я облажался, просто скопировав два кофейных скрипта gmaps4rails и вставив их в app / assets / javascripts / gmaps4rails.

Или ?????

Кто-нибудь?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

Сейчас я решил эту проблему, поместив

    <script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>

в макет представления и удалив

//= require infobox.js

из манифеста, который использовался в представлении, где картаПоказано.Я копировал и вставлял различные версии infobox.js в свою локальную копию и работал через конвейер ресурсов.

Фон в IE8 по-прежнему отсутствует, но я использую infobox 1.1.9, и естьболее поздние версии, надеюсь, они исправят отсутствующий фон.

Сначала я заметил, что ранее работающая установка gmaps4rails 1.4.5 перестала работать, когда я обновил версию с 1.4.5 до 1.4.6.Поэтому я поставил 1.4.5 обратно и продолжил.Когда я заметил, что в IE8 отсутствует фон информационного окна, к тому времени gmaps4rails был на 1.4.8, и он действовал так же, как и попытка обновления 1.4.6.Я могу только предположить, что что-то изменилось между 1.4.5 и 1.4.6, что требует загрузки плагина infobox.js.

Еще один второстепенный момент: в 1.4.5 кластеризация была включена по умолчанию, в 1.4.8 она отключена по умолчанию, вы должны включить ее, передав параметр "do_clustering" => true "маркерам""хэш опции.

1 голос
/ 31 марта 2012

Обнаружил причину отсутствия фона в IE8, я не знаю, когда, возможно, много лет назад, я добавил это в свой

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Понятия не имею, когда я это сделал или почему, но его удаление исправило отсутствующий фон в IE8.

...