2016-06-29 9 views
0

オーバーレイの塗りつぶしに問題があります。私は新しい色を使いたいです。事前に助けてくれてありがとう。オーバーレイを新しい色で塗りつぶす方法

func addBoundry() 
    { 
     var points=[CLLocationCoordinate2DMake(39.02, -76.9),CLLocationCoordinate2DMake(38.97, -76.9),CLLocationCoordinate2DMake(38.97, -77),CLLocationCoordinate2DMake(39.02, -77)] 

     let polygon = MKPolygon(coordinates: &points, count: points.count) 

     mapView.addOverlay(polygon) 
    } 

    let regionRadius: CLLocationDistance = 1000 
    func centerMapOnLocation(location: CLLocation) { 
     let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, 
                    regionRadius * 2.0, regionRadius * 2.0) 
     mapView.setRegion(coordinateRegion, animated: true) 
    } 
    func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! { 
     if overlay is MKPolygon { 
      let polygonView = MKPolygonRenderer(overlay: overlay) 
      //polygonView.strokeColor = UIColor.magentaColor() 
      polygonView.strokeColor = UIColor(red: 0/255.0, green: 180/255.0, blue: 0/255.0, alpha: 0.4) 

      return polygonView 
     } 

     return nil 
    } 

答えて

3

あなたがstrokeColorであなたのポリゴンへのアウトラインをしたい場合は、あなたのMKPolygonRendererためlineWidthを設定する必要があります。デフォルト値は0です。

しかし、あなたは「オーバーレイを埋める」と言います。あなたの意図が記入された場合は、strokeColorではなく、fillColorを使用します。

(もちろん、マップビューのdelegateを正しく指定し、rendererForOverlayがまったく呼び出されていないことも確認してください。そこにブレークポイントやログステートメントを追加してそのルーチンは正常に呼び出されています)。

0

オーバーレイビューは、MKMapViewのデリゲートメソッドを使用して塗りつぶすことができます。

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay{ 

    MKPolylineView *overlayView = [[MKPolylineView alloc] initWithOverlay:overlay]; 
    overlayView.lineWidth = 5; 

    if ([overlay.title isEqualToString:@"other"]){ 
     overlayView.strokeColor= [UIColor lightGrayColor]; 
     overlayView.fillColor = [UIColor lightGrayColor]; 
    } 
    else if([overlay.title isEqualToString:@"one"]){ 
     overlayView.strokeColor= [UIColor blueColor]; 
     overlayView.fillColor = [UIColor blueColor]; 
    } 

    return overlayView; 

} 
関連する問題