private IEnumerator WaitLongPress()
    {
        yield return(new WaitForSeconds(longPressDelay));

        OnlineMapsMarkerBase     marker         = null;
        OnlineMapsDrawingElement drawingElement = null;
        Vector2 inputPosition = GetInputPosition();

        IOnlineMapsInteractiveElement interactiveElement = GetInteractiveElement(inputPosition);

        if (interactiveElement != null)
        {
            if (interactiveElement is OnlineMapsMarkerBase)
            {
                marker = interactiveElement as OnlineMapsMarkerBase;
            }
            else if (interactiveElement is OnlineMapsDrawingElement)
            {
                drawingElement = interactiveElement as OnlineMapsDrawingElement;
            }
        }

        if (marker != null && marker.OnLongPress != null)
        {
            marker.OnLongPress(marker);
        }
        else if (drawingElement != null && drawingElement.OnLongPress != null)
        {
            drawingElement.OnLongPress(drawingElement);
        }
        else if (OnMapLongPress != null)
        {
            OnMapLongPress();
            isMapDrag = false;
        }

        longPressEnumenator = null;
    }