gpt4 book ai didi

ios - 来自 MKPolyline 的纬度和经度点

转载 作者:IT王子 更新时间:2023-10-29 07:48:18 29 4
gpt4 key购买 nike

我正在尝试找出一种方法来从在 iOS 应用程序的 MKMapView 上绘制的 MKPolyline 获取所有纬度和经度点。

我知道 MKPolyline 不存储纬度和经度点,但我正在寻找一种方法来构建 MKPolyline 会触及 map 的纬度和经度数组。

有人对此有具体的可能解决方案吗?

谢谢

编辑:看到第一个回复(谢谢)后,我想我需要更好地解释我的代码在做什么:

  1. 首先我在 MKDirections 对象上调用“calculateDirectionsWithCompletionHandler
  2. 我得到了 MKRoute 对象,它有一个“polyline”属性。
  3. 然后我在 map View 上调用“addOverlay从 MKRoute 对象传入多段线

就这些。

所以,我已经为我构建了一条多段线。所以我想以某种方式获取折线中找到的所有点并将它们映射到纬度和经度...

最佳答案

要从 MKRoute 获取折线的坐标,请使用 getCoordinates:range: 方法。
该方法位于 MKMultiPoint 类中,MKPolyline 继承自该类。

这也意味着这适用于任何多段线——无论它是由您还是由 MKDirections 创建的。

您分配一个足够大的 C 数组来容纳您想要的坐标数并指定范围(例如,所有点从第 0 个开始)。

例子:

//route is the MKRoute in this example
//but the polyline can be any MKPolyline

NSUInteger pointCount = route.polyline.pointCount;

//allocate a C array to hold this many points/coordinates...
CLLocationCoordinate2D *routeCoordinates
= malloc(pointCount * sizeof(CLLocationCoordinate2D));

//get the coordinates (all of them)...
[route.polyline getCoordinates:routeCoordinates
range:NSMakeRange(0, pointCount)];

//this part just shows how to use the results...
NSLog(@"route pointCount = %d", pointCount);
for (int c=0; c < pointCount; c++)
{
NSLog(@"routeCoordinates[%d] = %f, %f",
c, routeCoordinates[c].latitude, routeCoordinates[c].longitude);
}

//free the memory used by the C array when done with it...
free(routeCoordinates);

根据路线,准备好数百或数千个坐标。

关于ios - 来自 MKPolyline 的纬度和经度点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21861403/

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