2016-09-22 11 views
1

をポリゴンを描画する私は(ポリラインの周りにポリゴンを描画に問題がある(私はすべてのポリラインを調整し、私はこのポリラインの周りにポリゴンの座標を取得する座標をバッファリングする必要があります。どのIOSでポリラインを中心に半径で迅速

I 。こののようなものがあります。

enter image description hereをしかし、私はのようなものを作りたい、この

enter image description here

助けてください

...

+0

ポリラインをもう一度別の色と大きな線幅で描画することはできますか? – Fogmeister

答えて

2

あなただけの同じパスを持つ2つのポリラインを描くことができます。

変数thePathをバッファリングされた座標で作成したとします。 すでにこのパスでポリラインを作成しています。

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

もう1つ作成します。私はあなたが提供してきた画像で見ることができるよう、redPolylineがもう一方の上にあるため、

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よりも高くする必要があります。

+0

はい、それはかなり正しい決定ではありません。このポリゴンを描画する距離を設定する必要があります。この領域にあるポイント(Googleプレイス)を追加する必要があります( )。 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) 
     } 
    } 
関連する問題