Хобрук: Ваш путь к мастерству в программировании

гугл карты сенча тач 2 конфигурация

Привет, я реализую карты Google в сенча-тач, как предлагается здесь: реализация карт Google в sencha touch 2 (способ MVC)

Однако, когда карта появляется, она сначала отображает местоположение по умолчанию (где-то в Соединенных Штатах), а затем снова перерисовывается, чтобы показать карту в соответствии с моей конфигурацией. Как я могу этого избежать?

Ext.define('App.view.Map', {
extend: 'Ext.Map',
xtype: 'map',
useCurrentLocation: false,
config: {
  layout: 'fit',
  iconCls: 'icon-location',
  title: 'Location',
  styleHtmlContent: true,
    items: {
        docked: 'top',
        xtype: 'titlebar',
        title: 'Location'
    }
},
mapOptions: {
    center: new google.maps.LatLng(<value>, <value>),
    disableDefaultUI: true
},
constructor: function(config) {
    this.callParent(config);
    if (!(window.google || {}).maps) {
            this.setHtml('<p id="maperror">Internet Connection Required!</p>');
    }
}
});

  • см. мой обновленный ответ 20.08.2013

Ответы:


1

Вы определили представление карты и расширили Ext.Map, так что представление становится картой, и когда вы указываете xtype для своего представления, оно не должно быть предопределенным xtype, таким как карта, панель, кнопка и т. д..

Вам следует изучить систему классов Ext и попробовать этот код.

Ext.define('myapp.view.Map', {
    extend: 'Ext.Map',
    xtype: 'mymap',
    config: {
        layout: 'fit',
        iconCls: 'icon-location',
        title: 'Location',
        useCurrentLocation: false,
        styleHtmlContent: true,
        items: [{
            docked: 'top',
            xtype: 'titlebar',
            title: 'Location'
        }],
        mapOptions: {
          center: new google.maps.LatLng(<value>, <value>),
          disableDefaultUI: true
       }
    },
    constructor: function(config) {
        this.callParent(config);
        if (!(window.google || {}).maps) {
            this.setHtml('<p id="maperror">Internet Connection Required!</p>');
        }
    }
});
19.08.2013
  • Благодарность! это сработало... моя ошибка заключалась в том, что я помещал раздел mapOptions вне раздела конфигурации, поэтому он игнорировался... обязательно посмотрю видео... 20.08.2013
  • @bert ya, это также причина, по которой я сказал, что тебе нужно изучить систему классов. 20.08.2013

  • 2
    1. Вы можете установить начальное местоположение, добавив опцию «центр» в конфигурацию карты «mapOptions».

      {
          xtype: 'map',
          mapOptions: {
             center: new google.maps.LatLng(-34.397, 150.644)
          }
      }
      
    2. Вы можете просто переопределить класс Ext.Map и добавить собственное сообщение.

      Ext.define('MyApp.overrides.Map', {
          constructor: function() {
             this.callParent(arguments);
             // this.element.setVisibilityMode(Ext.Element.OFFSETS);
      
              if (!(window.google || {}).maps) {
                  // do your own thing here
              }
          }
      });
      
    19.08.2013
  • этот метод переопределения работает, спасибо ... Я уже решил это раньше и отредактировал код, но, похоже, вы были очень быстрыми :) 19.08.2013
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..