2016-07-18 33 views
0

我使用google地圖的openlayers 3。當捏在移動縮放,地圖停止工作,並拋出一個異常: Uncaught TypeError: Cannot read property 'x' of undefined未捕獲的類型錯誤:無法讀取谷歌地圖上未定義的縮放縮放屬性'x'

var googleMapOptions = { 
     disableDefaultUI : true, 
     keyboardShortcuts : false, 
     draggable : false, 
     disableDoubleClickZoom : true, 
     scrollwheel : false, 
     streetViewControl : false 
    }; 
googleMapDiv = document.getElementById('googleMap'); 
var googleMap = new google.maps.Map(googleMapDiv, googleMapOptions); 
openLayersView = new ol.View({ 
      // Do NOT go beyond the 22 zoom levels of Google Maps 
      maxZoom : 22, 
      minZoom : 1 
     }); 

     // setting open layer settings 
     openLayersMapDiv = document.getElementById('openLayersMap'); 
     var map = new ol.Map({ 
      controls : ol.control.defaults().extend([ new ol.control.ScaleLine({ 
       unit : 'degrees', 
      }) ]), 
      interactions : ol.interaction.defaults({ 
       altShiftDragRotate : false, 
       dragPan : false, 
       rotate : false, 
       pinchRotate : false, 
       mouseWheelZoom:false 
      }).extend([ new ol.interaction.DragPan({ 
       kinetic : null 
      }) ]), 
      target : openLayersMapDiv, 
      view : openLayersView 
     }); 

我已經看到了這個問題:https://code.google.com/p/gmaps-api-issues/issues/detail?id=5209,並試圖使draggable,但沒有成功。

我使用的是google maps API 3.2和openlayers 3.0.0。

我已經研究過這個問題。在縮放時,googleMap.getZoom()得到的縮放值未定義。

回答

0

問題是在谷歌地圖上調用panTo而不是我用setCenter()

openLayersView.on('change:center', function() { 
     var center = ol.proj.transform(openLayersView.getCenter(), EPSG_3857, EPSG_4326); 
     //googleMap.panTo(new google.maps.LatLng(center[1], center[0])); <-- causes the exception 
     googleMap.setCenter(new google.maps.LatLng(center[1], center[0])); 
}); 
相關問題