इस समय, मैं बाहर एक एक MKMapView पर समन्वय चाहे लगाने की कोशिश कर रहा हूँ एक MKPolygon अक्षांश/देशांतर के साथ समय से आगे बाहर खींचा के भीतर है।निर्धारित करना कि अक्षांश/रेखांश बिंदु मैपव्यू के भीतर एक एमके पोलिगॉन में है या नहीं?
मैं CGPathContainsPoint उपयोग कर रहा हूँ निर्धारित करने के लिए एक समन्वय नक्शे पर बहुभुज के भीतर है लेकिन यह हमेशा समन्वय मैं चुन की परवाह किए बिना झूठी देता है।
किसी को भी कृपया व्याख्या कर सकते हैं कि वास्तव में क्या गलत हो रहा है? स्विफ्ट में मेरा कोड नीचे है।
class ViewController: UIViewController, MKMapViewDelegate
@IBOutlet weak var mapView: MKMapView!
let initialLocation = CLLocation(latitude: 43.656734, longitude: -79.381576)
let point = CGPointMake(43.656734, -79.381576)
let regionRadius: CLLocationDistance = 500
let point1 = CLLocationCoordinate2D(latitude: 43.656734, longitude: -79.381576)
var points = [CLLocationCoordinate2DMake(43.655782, -79.382094),
CLLocationCoordinate2DMake(43.657499, -79.382310),
CLLocationCoordinate2DMake(43.656656, -79.380497),
CLLocationCoordinate2DMake(43.655782, -79.382094)]
override func viewDidLoad() {
super.viewDidLoad()
centerMapOnLocation(initialLocation)
let polygon = MKPolygon(coordinates: &points, count: points.count)
mapView.addOverlay(polygon)
var annotation = MKPointAnnotation()
annotation.coordinate = point1
annotation.title = "Test"
annotation.subtitle = "Test"
mapView.addAnnotation(annotation)
self.mapView.delegate = self
}
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.redColor()
if CGPathContainsPoint(polygonView.path, nil, CGPointMake(43.656734, -79.381576), true) {
print("True!!!!!")
} else {
println("False")
}
return polygonView
}
return nil
}
के लिए अपडेट किया गया हे आप "गलत" का उपयोग नहीं होता .. CGPathContainsPoint को अंतिम तर्क (घुमावदार शैली पथ प्राप्त करने के लिए)। – Fattie
मैंने दोनों सत्य और झूठी कोशिश की लेकिन कोई फायदा नहीं हुआ। :( –