2012-12-27 47 views
3

我正在嘗試爲Google地圖創建一個視圖,並且根據我發現的一些示例,實際上已將其視爲可行。Ember.js:Google地圖視圖

問題在於地圖只在第一次顯示頁面時繪製正確, 如果路線改變,然後地圖再次被繪製,它看起來「失真」。

我發現的例子是應用程序的「一頁」部分。

查看:

App.LocationView = Ember.View.extend({ 
    templateName: 'location', 
    MapView: Ember.View.extend({ 
     map: null, 
     latitudeBinding: 'controller.content.geometry.lat', 
     longitudeBinding: 'controller.content.geometry.lng', 
     didInsertElement: function() { 
      var mapOptions = { 
       center: new google.maps.LatLng(0, 0), 
       zoom: 16, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       mapTypeControl: false 
      }; 
      var map = new google.maps.Map(this.$().get(0),mapOptions); 
      this.set('map',map); //save for future updations 
      this.$().css({ width: "550px", height: "400px" }); 
     }, 
     reRenderMap : function(){ 
      var newLoc = new google.maps.LatLng(this.get('latitude'), this.get('longitude')); 
     this.get('map').setCenter(newLoc); 
      var marker = new google.maps.Marker({ 
       position: new google.maps.LatLng(this.get('latitude'), this.get('longitude')), 
       map: this.get('map') 
      }); 
     }.observes('latitude','longitude') 
    }) 
}); 

我告訴我的「位置」模板一個div#地圖倉內有{{view view.MapView}}地圖。

我也是這個CSS應用到div「修理」引導與地圖控件搞亂:

#map-holder img { 
    max-width: none; 
} 

我怎麼能解決這個問題?

編輯:的jsfiddle - http://jsfiddle.net/bsphere/jYfg3/ 進入「設置」,然後返回到「地圖」看到扭曲的地圖

+0

可以提供一個說明問題的「工作」jsfiddle嗎? –

+0

jsfiddle - http://jsfiddle.net/bsphere/jYfg3/ 進入'設置',然後回到'地圖'看到扭曲的地圖 –

回答

2

看起來這是不完全相關的灰燼,但對地圖重新劃分和調整大小。隨着你的小提琴,如果你調整瀏覽器窗口的大小,你可以看到地圖顯示正確。 當我看到它時,我試圖把this.$().css({ width: "550px", height: "400px" });放在地圖的控制之前,它似乎工作。