gmaps4rails на jQueryMobile не работает - PullRequest
1 голос
/ 12 октября 2011

Я попробовал gmaps4rails на jQueryMobile Framework.

Одна страница является только ссылкой на страницу gmaps. Две страницы - это страница gmaps4rails.

Включена страница jjueryMobile ajax. С одной страницы на две страницы не отображать карты. Но две страницы прямого доступа - это успех отображения карт.

Это мой репозиторий. https://github.com/y-hirasawa/sample-jqm-map

Я хочу использовать страницы ajax и отображать gmaps. Помоги мне.

1 Ответ

2 голосов
/ 13 октября 2011
  • Вам необходимо включить файлы javascript googlemaps в свой макет:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=false&amp;libraries=geometry"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/src/infobox.js"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.1/src/markerclusterer.js"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js"></script>
  • карта создается благодаря обратному вызову window.onload. Поскольку страница уже загружена, происходит сбой. Поэтому вы должны добавить мобильный обратный вызов jquery в свой application.js:

$ ('# gmaps'). Live ('pageshow', function (event) {

  Gmaps.loadMaps(); 

});

  • Если вы хотите, чтобы это работало, вы должны установить идентификатор для страницы, содержащей карту Google:
<div class="page" data-role="page" id="gmaps">
  • Наконец, вы должны предотвратить двойную загрузку скриптов, поэтому измените ваш вызов на gmaps4rails helper:

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

...