2013-08-19 4 views
1

Привет Я реализующий карты Google в сенча прикосновением, как предложено здесь: google maps implementation in sencha touch 2 (the MVC way)Google Maps Сенча Touch 2 конфигурации

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

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>'); 
    } 
} 
}); 
+0

введите код вашей карточки – Viswa

+0

см. Мой обновленный ответ – Viswa

ответ

0

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

Вы должны изучить Ext class system и попробовать этот код.

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>'); 
     } 
    } 
}); 
+0

спасибо! это сработало ... Моя ошибка заключалась в том, что я помещал строфу mapOptions вне конфигурации один, поэтому ее игнорировали ... будет смотреть видео точно ... – bert

+0

@bert ya, это также причина, по которой я сказал, что вам нужно изучить систему классов. – Viswa

0
  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 
         } 
        } 
    }); 
    
+0

oh! вы выложили быстрый – Viswa

+1

этот метод переопределения работает спасибо ... Я уже решил это раньше и отредактировал код, но вы были очень быстры, кажется :) – bert