2016-09-22 6 views
1

У меня есть проблемы с рисованием многоугольника вокруг ломаной линии ((я все координаты полилинии и я хочу, чтобы буфер координаты, чтобы получить координаты многоугольника вокруг этой ломаной линии.Как нарисовать многоугольник с радиусом вокруг ломаной линии в ИОС быстрого

I есть что-то вроде это:. enter image description here

Но я хочу сделать что-то вроде это:

enter image description here

пожалуйста, помогите ...

+0

Не могли бы вы просто нарисовать полилинию с другим цветом и шириной линии? – Fogmeister

ответ

2

Вы можете просто нарисовать 2 полилинии с таким же путем.

Предположим, вы создали переменную thePath с буферизованными координатами. Вы уже создали полилинию с этим путем.

let redPolyline = GMSPolyline() 
redPolyline.path = thePath 
redPolyline.map = mapview 

Создайте еще один.

let redPolyline = GMSPolyline() 
redPolyline.path = thePath 
redPolyline.strokeWidth = 6.0 // Change it accordingly 
redPolyline.strokeWidth = UIColor.redColor().colorWithAlphaComponent(0.5) // Change it accordingly 

redPolyline.map = mapview 

Не забывайте, что redPolyline-х zIndex должна быть выше, чем bluePolyline, потому что, как я могу видеть на картинке вы при условии, redPolyline находится на вершине другого.

+0

Да, но это не совсем правильное решение. Мне нужно установить расстояние, чтобы нарисовать этот многоугольник, потому что мне нужно добавить дополнительные точки (Google Адреса), которые находятся в этой зоне (например, 20 км) Также принимаются решения о приближении к области Полилайна (( Для Java и Java-скрипт имеют решение https://github.com/dr-jts/jts/tree/master/modules/core/src/main/java/org/locationtech/jts/operation/buffer –

0
If you want to draw polygone on Google map with array coordinates use this function: 

func addPloygone(){ 
     let path = GMSMutablePath() 
     path.removeAllCoordinates() 
     for i in places{ 
      path.add(CLLocationCoordinate2D(latitude:i.lon!, longitude:i.lat!)) 
      let polyline = GMSPolygon(path: path) 
      polyline.geodesic = true 
      polyline.map = map 
      polyline.strokeColor = UIColor.black 
      polyline.fillColor = UIColor.init(colorLiteralRed:176/255, green: 143/255, blue:52/255, alpha: 0.6) 
     } 
    }