Rails, проблема gmaps4rails с кластерами - PullRequest
2 голосов
/ 21 сентября 2011

В прошлый раз я заметил проблему с кластером карт Google.

Я использую плагин gmaps4rails (я пробовал версии 0.8.6 и 1.1.5, и проблема существует в обоих).

Правильно отображается простая карта с одним маркером.

Но если я получил 10 маркеров, карта не отображается (многие маркеры создают один кластер).

Я проверяю эту проблему с firebug и возвращаю

e.b.mapTypes[e.b.getMapTypeId()] is undefined

Эта ошибка из файла -> https://google -maps-utility-library-v3.googlecode.com / svn / tags / markerclusterer / 1.0 / src / markerclusterer_compiled.js

Кроме того, я попытался отключить кластеризацию с помощью параметров

<%= gmaps({"markers" => { "data" => @json }, "map_options" => {"do_clustering" => false}}, true, true) %>

Но я получил ту же ошибку.

Есть ли быстрое решение этой проблемы?

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Быстрое решение.

Скачать этот файл:

http://google -maps-utility-library-v3.googlecode.com / SVN / теги / markerclusterer / 1,0 / SRC / markerclusterer.js

Поместите это в:

публичный / JavaScripts / markerclusterer.js

И изменить код в строке 90 на

  var maxZoom = 18; //that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;

Включить файлы в app / views / layouts / application.html.erb

<%= javascript_include_tag "https://maps.google.com/maps/api/js?sensor=false&libraries=geometry" %>
<%= javascript_include_tag "markerclusterer_compiled.js" %>

и для 0,8.х

 <%= javascript_include_tag "gmaps4rails.js" %>

для 1.x.x

 <%= javascript_include_tag "gmaps4rails.base.js" %>
 <%= javascript_include_tag "gmaps4rails.googlemaps.js" %>

После этого вы должны использовать:

 <%= gmaps4rails(@json, true, false) %>

или

 <%= gmaps({ "markers" => { "data" => @json } },true, false) %>

Чтобы не загружать из местоположения по умолчанию файлы Google Maps JS.

Источник:

https://github.com/apneadiving/Google-Maps-for-Rails/wiki/View-helper

ClusterMarkerer - кластер не отображается - this.map_.mapTypes [this.map_.getMapTypeId ()] является неопределенным markerclusterer.js: 304

НТН

Редактировать Хорошо, Google исправил эту проблему, но я оставлю решение для других.

1 голос
/ 22 сентября 2011

Это связано с тем, что обновление от Google привело к несовместимости.

Теперь все в порядке.

...