Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 837
Fadielse Avatar asked Jun 06 '18 06:06

Fadielse


2 Answers

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.
    • This might help.
  3. Draw a polygon from the location coordinates.
    • This will help
  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.

like image 178
Daniel Avatar answered Sep 21 '22 17:09

Daniel


You should draw the lines using Quartz2D since this question is kind of large i'll just point you to a good reference.

https://www.raywenderlich.com/87899/make-simple-drawing-app-uikit-swift

here you should be able to figure out how to draw to the screen.

like image 36
cheesey Avatar answered Sep 20 '22 17:09

cheesey