Je veux avoir une distance de mon emplacement actuel à une annotation qui est dans la base de données FireData. .. J'ai essayé de le faire mot, mais je ne peux pas, (je voudrais avoir la distance entre les deux endroits dans un var J'espère que les gars vous pouvez me aiderDistance entre l'emplacement actuel et l'annotation. (Firebase)
func reload(){
//get data
Database.database().reference().child("Rollerbanken").observe(.value, with: { (snapshot) in
for item in snapshot.children{
if let value = snapshot.value as? Dictionary<String, Any> {
for key in value.keys {
if let itemDict = value[key] as? Dictionary<String, AnyObject> {
let annotation = MKPointAnnotation()
annotation.title = itemDict["TypeControle"] as! String
let tijd = itemDict["Tijd"] as! String
annotation.subtitle = "Geplaatst om \(tijd)"
let getLatitude = itemDict["Latitude"] as? String
let getLongitude = itemDict["Longitude"] as? String
if let lat = getLatitude, let long = getLongitude {
annotation.coordinate = CLLocationCoordinate2D(latitude: Double(lat)!, longitude: Double(long)!)
self.map.addAnnotation(annotation)
let directionRequest = MKDirectionsRequest()
directionRequest.source = MKMapItem.forCurrentLocation()
if #available(iOS 10.0, *) {
directionRequest.destination = MKMapItem(placemark: MKPlacemark.init(coordinate: CLLocationCoordinate2DMake(Double(lat)!, Double(long)!)))
} else {
// Fallback on earlier versions
}
directionRequest.transportType = .walking
let direction = MKDirections(request: directionRequest)
direction.calculate(completionHandler: { (response, error) in
if error != nil {
print("Error while build route")
} else {
let route = response?.routes.last
let distance = route?.distance
print(distance)
}
})
}
}
}
}
}
})
}
J'ai utilisé votre méthode (regardez le code mis à jour) mais elle ne fonctionne toujours pas. –
@DaniKemper Vous êtes sûr que vous obtenez la bonne coordonnée depuis Firebase, et que la géolocalisation permet d'afficher votre position actuelle sur la carte? Et mieux utiliser ce laisser getLongitude = (itemDict [ "Longitude"] comme? NSString) .doubleValue Son plus précis – maxkoriakin
Oui je suis Positieve! –