gpt4 book ai didi

iphone - 将地理坐标转换为CGPoint并在UIView中画线

转载 作者:行者123 更新时间:2023-12-03 19:21:10 25 4
gpt4 key购买 nike

我有一个从核心位置框架工作委托(delegate)方法获得的地理坐标转换中获得的 CGPoint 集合。该集合是一组起点/终点。

我正在从 CoreLocation 委托(delegate)方法获取坐标

CLLocationCoordinate2D coordinate;
CLLocationDegrees latitude;
CLLocationDegrees longitude;

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
CLLocation *location = [locations lastObject];

latitude = location.coordinate.latitude;
longitude = location.coordinate.longitude;
}

我将当前的纬度和经度转换为 CGPoint 如下

CGPoint startPoint = [mapView convertCoordinate:retrievedCoordinate toPointToView:self.view];
CGPoint endPoint = [mapView convertCoordinate:retrievedEndCoordinate toPointToView:self.view];

我需要根据集合中的值在 UIView 上绘制线条。如何正确调整/缩放相对于 UIView 的 CGPoints。 UIView 框架大小为 (0, 0, 768, 1004)。

这是我所做的缩放

- (CGPoint)convertLatLongCoord:(CGPoint)latLong {
CGSize screenSize = [UIScreen mainScreen].applicationFrame.size;
CGFloat SCALE = MIN(screenSize.width, screenSize.height) / (2.0 * EARTH_RADIUS);
CGFloat OFFSET = MIN(screenSize.width, screenSize.height) / 2.0;

CGFloat x = EARTH_RADIUS * cos(latLong.x) * cos(latLong.y) * SCALE + OFFSET;
CGFloat y = EARTH_RADIUS * cos(latLong.x) * sin(latLong.y) * SCALE + OFFSET;

return CGPointMake(x, y);
}

其中#define EARTH_RADIUS 6371

线条绘制不正确,因为某些地方到 CGPoint 的转换可能是错误的。我究竟做错了什么。需要帮助。

最佳答案

要将 CLLocationCooperative2D 转换为 CGPoint,请参阅此处的答案 - https://stackoverflow.com/a/37276779/2697425

关于iphone - 将地理坐标转换为CGPoint并在UIView中画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com