如何获取特定坐标的红色注释

时间:2015-11-29 04:20:37

标签: swift annotations swift2 mapkit mapkitannotation

我想用绿色表示从查询到Parse的所有用户坐标,但我想要用红色的用户(当前)之一。

以下是我现在所拥有的

import UIKit
import MapKit

class MultipleAnnotationViewController: UIViewController, MKMapViewDelegate
{
    var arrayOfPFObject: [PFObject] = [PFObject]()
    var lat_ :Double = 0
    var long_ :Double = 0
    @IBOutlet weak var dispAnnotation: MKMapView!
    let currentUser = PFUser.currentUser()
    override func viewDidLoad()
    {
        super.viewDidLoad()
        dispAnnotation.delegate = self
        for coordinateItem in arrayOfPFObject
        {
            let pointAnnotation = MKPointAnnotation()
            self.lat_ = coordinateItem["Latitude"] as! Double
            self.long_ = coordinateItem["Longitude"] as! Double
            pointAnnotation.coordinate = CLLocationCoordinate2D(latitude:  self.lat_, longitude: self.long_)
            dispAnnotation.addAnnotation(pointAnnotation)
        }
    }
    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView?
    {
        guard !(annotation is MKUserLocation)
            else
        { return nil }
        let identifier = "com.domain.app.something"
        var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as? MKPinAnnotationView
        if annotationView == nil {
            annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
            annotationView?.pinTintColor = UIColor.greenColor()
            annotationView?.canShowCallout = true
        } else {
            annotationView?.annotation = annotation
        }
        return annotationView
    }
}

目前如果arrayOfPFObject运行四次,我会得到四个绿色的注释引脚,但我希望其中一个(当前用户)为红色。我将电子邮件ID存储为所有用户都是唯一的,因此我可以使用它来区分用户的当前和其余部分

  1. 所以我想在我的mapView方法中编写这样的东西,但是mapView不会识别coordinateItem数组,因为它不在他的范围内:

    if(String(coordinateItem["email"]) == String((currentUser?.valueForKey("email"))!))

    {

        annotationView?.pinTintColor = UIColor.redColor()
    
        }
        else
        {
        annotationView?.pinTintColor = UIColor.greenColor()
        }
    
  2. 我认为这种方法不会起作用,然后我可以通过添加一个查询来阻止查询结果中的当前用户

  3. query.whereKey("objectId", notEqualTo: (currentUser?.valueForKey("objectId"))!)

    现在我的arraOfPFObject循环将运行三次,我将获得三个绿色注释。但现在再回到主要问题,如何绘制第四个,这意味着当前用户是红色的。我可以轻松捕捉第四个位置坐标,但现在如何用红色绘制它们。请让我知道如果我需要更清楚我想要达到的目标。

0 个答案:

没有答案