2

I have a website which uses Google Maps API v3 and i couldn't get the pinch-zoom property to work properly. Instead of a Pinch-to-Zoom-In, the gesture always performs a Zoom-Out.

This is a PC monitor with Touch capability. So, as i was unable to get it work properly, i decided to disable the feature.

I cancelled the touch event using below

document.documentElement.ontouchstart = function() {return false}

This has an unwanted side-effect. This code cancels the entire touch events and hence user cannot use the Google Maps default Zoom control. I tried changing the 'ontouchstart' to a 'ontouchmove' event but this is not preventing the map from zooming out.

Any ideas on how to disable the feature or may be how to fix the pinch-to-zoomIn feature? I can post the website url but its just a plain google map and you will not notice the issue unless if you a have touch enabled monitor.

Sparda
  • 608
  • 2
  • 12
  • 25
  • 1
    It doesn't work for you so you decided to disable it for everyone? – Dennis Feb 25 '13 at 02:56
  • Sorry but why is that a concern to you? This is not a public website and when a feature is more painful to use, it is best to disable it. And if you bothered to read the question fully, i'm leaving the default Zoom controls UI 'ON'. – Sparda Feb 25 '13 at 03:17

2 Answers2

3

Here someone with a similar problem solved it this way, maybe it will work for you

var tblock = function (e) {
if (e.touches.length > 1) {
    e.preventDefault()
}

return false;
}

document.body.addEventListener("touchmove", tblock, true);

Google Maps API v3 Disable Pinch to Zoom on iPad Safari

And here

How to disable pinch in Android MapView

Community
  • 1
  • 1
Alejandro
  • 519
  • 1
  • 6
  • 32
  • Thanks @Alejandro. I actually looked at that answer before but somehow completely missed the 'e.touches' property. That fixed it. – Sparda Feb 25 '13 at 02:20
1

Disabling "touchmove" only solves part of the problem, as Google Maps has its own ideas. Your device will allow you to pinch-zoom (to an extent, and inconsistently), until you disable Google Maps' own draggable option, e.g.

mymap.setOptions({draggable: false});

At least that's how it is on Android 4.4.2.