Uncaught TypeError: Cannot read property 'x' of undefined pinch zoom on google maps

Uncaught TypeError: Cannot read property 'x' of undefined pinch zoom on google maps

我正在使用带有 google 地图的 openlayers 3。在移动设备上缩放时,地图停止工作并抛出异常: Uncaught TypeError: Cannot read property 'x' of undefined

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 地图 API 3.2 和 openlayers 3.0.0。

我已经调查了这个问题。双指缩放时,googleMap.getZoom()得到的缩放值未定义。

问题是在 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]));
});