Package globus.glmap

Class GLMapGesturesDetector

  • All Implemented Interfaces:
    android.view.View.OnTouchListener

    public class GLMapGesturesDetector
    extends java.lang.Object
    implements android.view.View.OnTouchListener
    Detector of gestures for map view
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long getFlingSpeedGate()
      Minimal speed to trigger fling event Default implementation returns 400
      long getFlingTimeGate()
      If last move event was older that returned value no fling events will be triggered Default implementation returns 100000000
      long getLongPressDuration()
      Time to trigger long press Default implementation returns 1000000000
      long getMaxTapsToDetect​(int numberOfTouches)
      Maximum taps to detect for given number of touches Default implementation return 2 for 1 touch and 1 for others
      long getMultiTapTimeGate()
      Time between taps Default implementation returns 250000000
      int getNumberOfTouches()
      Returns number of active touches
      float getRotationGate()
      Rotation starts when user rotates two fingers for more than returned value Default implementation returns 10
      float getRotationResetGate()  
      float getTapDistanceGate()
      Tap events disabled if movement of more then returned value is detected Default implementation returns 10
      float getTapZoomGate()
      Tap events disabled if zoom of more than returned value is detected Default implementation returns 1.01f
      float getTouchX​(int index)
      Returns x coordinate of the touch
      float getTouchY​(int index)
      Returns y coordinate of the touch
      void onBegin()
      Called when new touch started Default implementation does noting
      void onEnd()
      Called when all touches ended Default implementation rotate map to 0 if current angle is in range 340 ..
      void onFling​(float speedX, float speedY)
      Called when fling is detected Default implementation starts deceleration animation
      void onLongPress​(int numberOfTouches, float cx, float cy)
      Called when long press detected.
      void onMove​(float dx, float dy)
      Called when movement detected Default implementation move map to new center without animation
      void onRotate​(float delta, float cx, float cy)
      Called when rotation is detected Default implementation rotate map with animation if delta is greater than rotation gate.
      void onRotationReset()  
      void onTap​(int numberOfTouches, int numberOfTaps, float cx, float cy)
      Called when tap detected.
      boolean onTouch​(android.view.View v, android.view.MotionEvent motionEvent)  
      void onZoom​(float k, float cx, float cy)
      Called when zoom detected
      void stopDetectingTouches()
      Stop detecting touches util all current touches are up
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GLMapGesturesDetector

        public GLMapGesturesDetector​(@NonNull
                                     GLMapViewRenderer renderer,
                                     @NonNull
                                     android.os.Handler handler)
        Default constructor
        Parameters:
        renderer - position, angle and zoom of this map will be modified by this detector
        handler - gesture handler
    • Method Detail

      • stopDetectingTouches

        public void stopDetectingTouches()
        Stop detecting touches util all current touches are up
      • getTouchX

        public float getTouchX​(int index)
        Returns x coordinate of the touch
        Parameters:
        index - index of touch
        Returns:
        x coordinate of touch (in pixels)
      • getTouchY

        public float getTouchY​(int index)
        Returns y coordinate of the touch
        Parameters:
        index - index of touch
        Returns:
        y coordinate of touch (in pixels)
      • onTap

        public void onTap​(int numberOfTouches,
                          int numberOfTaps,
                          float cx,
                          float cy)
        Called when tap detected. Default implementation performs zoom in on numberOfTouches == 1 and numberOfTaps ==2 Default implementation performs zoom out on numberOfTouches == 2 and numberOfTaps ==1
        Parameters:
        numberOfTouches - number of touches
        numberOfTaps - number of taps
        cx - x coordinate of the touches center
        cy - y coordinate of the touches center
      • onLongPress

        public void onLongPress​(int numberOfTouches,
                                float cx,
                                float cy)
        Called when long press detected. Default implementation does nothing
        Parameters:
        numberOfTouches - number of touches
        cx - x coordinate of the touches center
        cy - y coordinate of the touches center
      • onMove

        public void onMove​(float dx,
                           float dy)
        Called when movement detected Default implementation move map to new center without animation
        Parameters:
        dx - movement distance over x axis (px)
        dy - movement distance over y axis (px)
      • onZoom

        public void onZoom​(float k,
                           float cx,
                           float cy)
        Called when zoom detected
        Parameters:
        k - zoom coefficient
        cx - x coordinate of the touches center
        cy - y coordinate of the touches center
      • onFling

        public void onFling​(float speedX,
                            float speedY)
        Called when fling is detected Default implementation starts deceleration animation
        Parameters:
        speedX - speed over x axis (px/s)
        speedY - speed over y axis (px/s)
      • onRotate

        public void onRotate​(float delta,
                             float cx,
                             float cy)
        Called when rotation is detected Default implementation rotate map with animation if delta is greater than rotation gate.
        Parameters:
        delta - angle delta (in degrees)
        cx - x coordinate of rotation center (in pixels)
        cy - y coordinate of rotation center (in pixels)
      • onBegin

        public void onBegin()
        Called when new touch started Default implementation does noting
      • onEnd

        public void onEnd()
        Called when all touches ended Default implementation rotate map to 0 if current angle is in range 340 .. 20
      • onRotationReset

        public void onRotationReset()
      • getTapDistanceGate

        public float getTapDistanceGate()
        Tap events disabled if movement of more then returned value is detected Default implementation returns 10
        Returns:
        max move distance allowed for taps (in pixels)
      • getTapZoomGate

        public float getTapZoomGate()
        Tap events disabled if zoom of more than returned value is detected Default implementation returns 1.01f
        Returns:
        max zoom allowed for taps
      • getRotationGate

        public float getRotationGate()
        Rotation starts when user rotates two fingers for more than returned value Default implementation returns 10
        Returns:
        angle when map rotation starts (in degrees)
      • getRotationResetGate

        public float getRotationResetGate()
      • getFlingTimeGate

        public long getFlingTimeGate()
        If last move event was older that returned value no fling events will be triggered Default implementation returns 100000000
        Returns:
        max time to trigger fling event (in nanoseconds)
      • getFlingSpeedGate

        public long getFlingSpeedGate()
        Minimal speed to trigger fling event Default implementation returns 400
        Returns:
        minimal speed to trigger fling event in px/s
      • getLongPressDuration

        public long getLongPressDuration()
        Time to trigger long press Default implementation returns 1000000000
        Returns:
        time between taps (in nanoseconds)
      • getMultiTapTimeGate

        public long getMultiTapTimeGate()
        Time between taps Default implementation returns 250000000
        Returns:
        time between taps (in nanoseconds)
      • getMaxTapsToDetect

        public long getMaxTapsToDetect​(int numberOfTouches)
        Maximum taps to detect for given number of touches Default implementation return 2 for 1 touch and 1 for others
        Parameters:
        numberOfTouches - number of touches
        Returns:
        number of taps to detect
      • getNumberOfTouches

        public int getNumberOfTouches()
        Returns number of active touches
        Returns:
        number of active touches
      • onTouch

        public boolean onTouch​(android.view.View v,
                               android.view.MotionEvent motionEvent)
        Specified by:
        onTouch in interface android.view.View.OnTouchListener