これは、Chrome および Windows 7、8 での Google マップの問題です ( #6425を参照)。
もう 1 つの解決策は、hammer.js タッチ ジェスチャ JavaScript ライブラリを使用して、ピンチ機能を再作成することです。
var map;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 8,
center: {
lat: -34.397,
lng: 150.644
}
});
var mc = new Hammer(document.getElementById('map-canvas'));
mc.get('pinch').set({
enable: true
});
var scale, zoom;
mc.on('pinchstart', function(ev) {
scale = ev.scale;
zoom = map.getZoom();
});
mc.on('pinch', function(ev) {
if (scale) {
var delta = (scale - ev.scale);
map.setZoom(Math.round(zoom - delta));
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
<!DOCTYPE html>
<html>
<body>
<div id="map-canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script src="https://hammerjs.github.io/dist/hammer.js"></script>
</body>
</html>
これはピンチ ジェスチャのみを処理するため、いくつかの調整が必要になる場合があります。
ユーザー エージェント スプーフィングを使用した回避策については、この質問に対する私の回答も参照してください。