0

私はタッチ スクリーン デスクトップ コンピューターを使用しており、基本的な Google マップの例の 1 つを Web サイトにセットアップしました。Chrome でパンしようとすると機能しませんが、Firefox では機能します。ピンチ トゥ ズームはどちらでも機能しませんが、maps.google.com ではすべてがタッチ スクリーンで正常に機能しています。

アップデート

この問題はバグで処理されました

https://issuetracker.google.com/issues/35824421

2016 年 12 月に Google Maps JavaScript API のバージョン 3.27 で解決されました。

4

2 に答える 2

0

これは、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>

これはピンチ ジェスチャのみを処理するため、いくつかの調整が必要になる場合があります。

ユーザー エージェント スプーフィングを使用した回避策については、この質問に対する私の回答も参照してください。

于 2015-06-24T14:04:26.260 に答える