我正在開發谷歌地圖上的一些導航任務。隨着車輛在其應用程序中的移動,我必須移動標記。我嘗試了@SO提供的不同解決方案,但它不能按我的需要工作。在Google地圖上移動GMSMarker像UBER
我得到的角度與以前的緯度/長,目前緯度/經度和動畫mapwithBearing與旋轉
這裏是代碼
[CATransaction begin];
[CATransaction setAnimationDuration:2.0];
NSDictionary *data = [[result objectForKey:@"returnData"] objectForKey:@"data"];
if (![data isEqual: [NSNull null]]) {
driverLocationCoordinate = CLLocationCoordinate2DMake([[data objectForKey:@"lat"] doubleValue], [[data objectForKey:@"lng"] doubleValue]);
driverMarker.position = driverLocationCoordinate;
GMSCameraPosition * camera = [GMSCameraPosition cameraWithLatitude:driverLocationCoordinate.latitude
longitude:driverLocationCoordinate.longitude
zoom:16];
mapHomeView.camera = camera;
if ([data objectForKey:@"preLat"] != [NSNull null] && [data objectForKey:@"preLng"] !=[NSNull null]){
if ([[data objectForKey:@"preLat"] floatValue] != 0.0f && [[data objectForKey:@"preLng"] floatValue] != 0.0f) {
NSLog(@"pre_lat = %f and pre_lng = %f", [[data objectForKey:@"preLat"] floatValue], [[data objectForKey:@"preLng"] floatValue]);
CLLocationCoordinate2D previousCoordinates = CLLocationCoordinate2DMake([[data objectForKey:@"preLat"] floatValue], [[data objectForKey:@"preLng"] floatValue]);
driverMarker.rotation = [self DegreeBearing:previousCoordinates locationB:driverMarker.position];
[mapHomeView animateToBearing:driverMarker.rotation];
}
}
[CATransaction commit];
我剛剛度代碼從另一個@SO後,它當我在直線道路上但是當汽車仍然或轉彎時,它會產生閃爍
這裏是從另一個SO帖子獲取角度的代碼。
-(double) DegreeBearing:(CLLocationCoordinate2D) A locationB: (CLLocationCoordinate2D)B{
double dlon = [self ToRad:(B.longitude - A.longitude) ];
double dPhi = log(tan([self ToRad:(B.latitude)]/2 + M_PI/4)/tan([self ToRad:(A.latitude)]/2 + M_PI/4));
if (fabs(dlon) > M_PI){
dlon = (dlon > 0) ? (dlon - 2*M_PI) : (2*M_PI + dlon);
}
return [self ToBearing:(atan2(dlon, dPhi))];
}
-(double) ToRad: (double)degrees{
return degrees*(M_PI/180);
}
-(double) ToBearing:(double)radians{
return [self ToDegrees:radians] + 360 % 360;
}
-(double) ToDegrees: (double)radians{
return radians * 180/M_PI;
}
任何人都可以幫忙或提出任何其他解決方案嗎?
你得到解決? –
你有解決方案嗎?如果你發現它,請幫助我。 –
我用上面提到的代碼進行了一些修改,但它不是一個完美的解決方案。 –