2016-07-18 3 views
0

私はGoogleマップでopenlayers 3を使用しています。ピンチはモバイルにズームすると、マップは動作を停止し、例外をスロー:https://code.google.com/p/gmaps-api-issues/issues/detail?id=5209をしてdraggableが、ノー成功を有効にしてみました:私はこの問題を見てきました Uncaught TypeError: Cannot read property 'x' of undefinedUncaught TypeError:未定義ピンチのプロパティ '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 
     }); 

私はgoogle maps API 3.2とopenlayers 3.0.0を使用しています。

私は問題を調査しました。ピンチズームでは、googleMap.getZoom()で得られたズーム値は未定義です。

答えて

0

問題は、Googleマップで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])); 
}); 
関連する問題