2013-09-18 5 views
1

У меня есть компонент карты с Google Maps в представлении, что я хочу динамически установить центр. Он находится на странице с подробным стилем, так что данные передаются ему, когда он загружен, поэтому предпочтение отдается установке центра в функции запуска. Я продолжаю получать ряд неопределенных ошибок при попытке ссылаться на карту и использовать функцию Google Maps setCenter(), не работает при настройке компонента карты Sencha. Я почти уверен, что использование setCenter - лучший способ выполнить это, но я просто не могу настроить его и выполнить.Центрирование карты Google вокруг точек из магазина - Sencha Touch 2

Любые советы по этому вопросу было бы здорово, спасибо заранее:

код карты (пункт, внутри Ext.Container):

 { 
      xtype: 'map', 
      height: 150, 
      itemId: 'map', 
      width: '100%', 
      mapOptions : { 
       zoom : 12, 
       mapTypeId : google.maps.MapTypeId.ROADMAP, 
       navigationControl: true, 
       navigationControlOptions: { 
        style: google.maps.NavigationControlStyle.DEFAULT 
       } 
      } 
     } 
+0

как вы пытаетесь получить карту для вызова setCenter? – Viswa

+0

@ Viswa Мне удалось получить данные, которые я хочу обновить с карты из магазина, но в отношении фактического таргетинга на карту и выполнения функции setCenter я не слишком уверен, поэтому я просил некоторую помощь. Моя единственная попытка до сих пор пыталась получить карту через Ext.getComponent, которая не сработала. – MrFirthy

+0

У вас есть идентификатор контейнера? – Viswa

ответ

1

Используйте предоставленный setMapCenter метод.

Вы можете использовать component query, чтобы получить ссылку на свою карту. Если вы действительно не можете получить его таким образом, дайте ему id и используйте Ext.getCmp(yourId) (не рекомендуется).

Позаботьтесь о том, чтобы карта была фактически отображена до этого (поместите свою логику обновления в прослушиватель maprender).

yourContainer.down('#map').setMapCenter({latitude, longitude}); 
+0

Спасибо за ответ! Будет ли слушатель maprender быть в моем контроллере или в самом представлении? – MrFirthy

+0

Оба будут работать. Я бы поставил его в контроллер, потому что это не похоже на внутреннюю логику. – rixo

Смежные вопросы