gpt4 book ai didi

ios - MKMapView 在所有点之间绘制连接线

转载 作者:可可西里 更新时间:2023-11-01 00:52:27 25 4
gpt4 key购买 nike

我有一个包含 50 多个坐标的列表。在所有这些坐标之间绘制线条的最有效方法是什么(应该创建一个“圆形”路径,因为它们都有显示顺序)并且易于自定义(线条粗细、颜色等...)?

谢谢!

最佳答案

我不确定我是否确实理解您的问题。如果您正在寻找要从头到尾显示的点列表,那么您需要从这些点创建一个 MKPolyline 对象,确保这些点按照您的顺序添加到 myPoints 数组中想要连接它们:

CLLocationCoordinate2D coordinates[[myPoints count]];

int i = 0;
for (Checkpoint *point in myPoints)
{
coordinates[i] = CLLocationCoordinate2DMake([point.lat floatValue] , [point.lon floatValue]);
i++;
}

self.polyline = [MKPolyline polylineWithCoordinates:coordinates count: [myPoints count]];
[mapView addOverlay:self.polyline];

然后确保您正在实现委托(delegate)方法 - mapView:rendererForOverlay:。这是一个示例,但可以根据您的需要进行调整:

-(MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
lineView.strokeColor = [UIColor blueColor];
lineView.lineWidth = 7;
return lineView;
}

但是,如果您真的想要一个闭环(圆形)对象,那么您将需要创建一个 MKPolygon 对象。这个过程非常相似;在这种情况下,将上面的 self.polyline 初始值设定项替换为以下代码:

self.polygon = [MKPolygon polygonWithCoordinates:coordinates count: [myPoints count]];
[mapView addOverlay:self.polygon];

我认为 - mapView:rendererForOverlay: 代码应该保持不变。我尚未测试此代码,但希望它能让您朝着正确的方向前进。

关于ios - MKMapView 在所有点之间绘制连接线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573756/

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