2010-07-15 6 views
3

Je suis en train de créer une application web pour les téléphones portables où il se passe quelque chose sur une partie de la carte. Malheureusement, je ne peux pas utiliser window.setTimeout (..) avec une combinaison mousedown/mouseup car l'API Maps ne contient pas ces événements car cela perturberait les événements de glissement. Y a-t-il une autre façon de faire cela? Il doit y avoir un moyen parce que la webapp Maps sur mobile apparaît le même menu lorsque vous appuyez sur le bouton droit de la souris sur Google Maps pour les ordinateurs - ne sais pas comment! S'il vous plaît, faites-moi savoir!!Événement Longpress sur l'API Google Maps?

Merci d'avance!

Répondre

0

Excellente question. Après beaucoup de fouilles, j'ai trouvé la page suivante sur les événements tactiles et gestuels pour Android et iPhone. Espérons que cette liste sera d'une certaine utilité pour vous:

http://backtothecode.blogspot.com/2009/10/javascript-touch-and-gesture-events.html

Pour élaborer, vous allez probablement vouloir gérer les événements de touchstart et touchEnd, en gardant peut-être une trace de la position du « curseur » à chacun pour déterminer si c'était une traînée ou simplement une presse. Bonne chance, et je ne vous blâme pas si vous ne considérez pas cela comme une réponse définitive. : P

+0

Merci beaucoup! Je vais donner un coup de feu demain et je vous le ferai savoir! – MapWeb

+0

Pas de problème. :) Je suis curieux d'entendre comment ça se passe. – Faisal

+0

Malheureusement, cela n'a pas fonctionné :(.. Je vais continuer à chercher et j'espère que je vais trouver quelque chose.Merci quand même! – MapWeb

1

Je ne vois aucune raison pour laquelle vous ne pouvez pas utiliser les événements DOM mousedown/mouseup plutôt que les événements API Maps pour détecter une pression longue. Vous pouvez même utiliser l'API Maps pour attacher les écouteurs, par exemple (en supposant que vous avez comme élément contenant la carte):

google.maps.event.addDomListener(document.getElementById('map_canvas'), 'mousedown', function() { console.log("Test") });