Search code examples
objective-cswiftgoogle-mapspolylinegmsmapview

GMSMapView Draw Custom Polyline in Swift


I made a map view with GMSMapView and I wanted to draw a polyline according to the touch of a finger. but this feature makes me stuck because I have not been able to find the appropriate reference.

in my case example like the result domain app that I want.

enter image description here

Thank you for your help.


Solution

  • This is a pretty big, complicated question, so I will outline steps for you to follow to implement this. If you need help with a specific step, I suggest you post a separate, specific question.

    Here we go:

    1. When the "draw mode" button is tapped, add a view above the map

      • Make sure this view takes all touch events so that the map does not scroll when the user draws
      • Subclass this view and override touchesBegan and touchesMoved to actually do the drawing. You can follow the tutorial here for that.

      • Keep an array of all vertices of the polygon in the view's coordinate system.

    2. On touchesEnded (when the user stops drawing), convert the points from above to map coordinates.
    3. Draw a polygon from the location coordinates.
    4. Remove that view you added in step 1 and turn off drawing mode.

    If you need clarification about this process don't hesitate to ask.