iOS için Google Maps SDK ile çalışıyorum.GMSMarker'ı X Metre İle Hareket Ettirme
Projem, geçerli konum işaretleyicisini, harita görünümüne çizilen önceden belirlenmiş yol boyunca x metre ile hareket ettirme yeteneğini gerektiriyor. Bu yüzden this question (Koray Birand tarafından cevap) den şu yöntemi uyguladık: Yukarıdaki yöntem gibi ararsanız Yani
func distance(distance: Double, AwayFromCoordinate origin: CLLocationCoordinate2D, WithBearing bearing: Double) -> CLLocationCoordinate2D {
let earthRadius = 6372797.6 // in meters
let radianDistance = distance/earthRadius
let radianBearing = bearing * M_PI/180.0
let latitude = origin.latitude * M_PI/180
let longitude = origin.longitude * M_PI/180
let lat2 = asin(sin(latitude) * cos(radianDistance) + cos(latitude) * sin(radianDistance) * cos(radianBearing))
let lon2 = longitude + atan2(sin(radianBearing) * sin(radianDistance) * cos(latitude), cos(radianDistance) - sin(longitude) * sin(lat2))
return CLLocationCoordinate2DMake(lat2 * 180/M_PI, lon2 * 180/M_PI)
}
aşağıdadır:
currentLocationMarker.position = distance(0.5, AwayFromCoordinate: currentLocationMarker.position, WithBearing: bearing)
Bu bana yeni bir konum verir 0.5 mevcut konumdan metre uzakta. Böyle bir sapma olur ve neden çözemedim
: Başlangıç noktası aynı olsa bile
Ancak hareketi aşağıda gibi küçük saptırmak için başladığı hafif sorun var düz gitmez. Herhangi bir fikir?