iPhone:如何在MapKit两点之间画线?

iPhone:如何在MapKit两点之间画线?,第1张

概述我有两点的纬度和经度,并希望在MapKit上用Pin绘制这两点之间的线. 我已经google了,但是找不到一些合适的解决方案,因为我发现这个解决方案是用数组点数来绘制叠加,但是我没有这两点之间的点数. 只需两点,并希望在这两点之间画线. 请帮忙. 首先使您的视图控制器实现MKMapViewDelegate协议并声明您将需要的属性: @property (nonatomic, retain) MKM 我有两点的纬度和经度,并希望在MapKit上用Pin绘制这两点之间的线.

我已经Google了,但是找不到一些合适的解决方案,因为我发现这个解决方案是用数组点数来绘制叠加,但是我没有这两点之间的点数.

只需两点,并希望在这两点之间画线.

请帮忙.

解决方法 首先使您的视图控制器实现MKMapVIEwDelegate协议并声明您将需要的属性:

@property (nonatomic,retain) MKMapVIEw *mapVIEw; //this is your map vIEw@property (nonatomic,retain) MKpolyline *routeline; //your line@property (nonatomic,retain) MKpolylineVIEw *routelineVIEw; //overlay vIEw

然后在vIEwDIDLoad中(例如,或者你初始化的地方)

//initialize your map vIEw and add it to your vIEw hIErarchy - **set its delegate to self***CLLocationCoordinate2D coordinateArray[2];coordinateArray[0] = CLLocationCoordinate2DMake(lat1,lon1); coordinateArray[1] = CLLocationCoordinate2DMake(lat2,lon2);self.routeline = [MKpolyline polylineWithCoordinates:coordinateArray count:2];[self.mapVIEw setVisibleMapRect:[self.routeline boundingMapRect]]; //If you want the route to be visible[self.mapVIEw addOverlay:self.routeline];

然后实现MKMapVIEwDelegate的方法 – (MKOverlayVIEw *)mapVIEw:vIEwForOverlay:

-(MKOverlayVIEw *)mapVIEw:(MKMapVIEw *)mapVIEw vIEwForOverlay:(ID<MKOverlay>)overlay{    if(overlay == self.routeline)    {        if(nil == self.routelineVIEw)        {            self.routelineVIEw = [[[MKpolylineVIEw alloc] initWithpolyline:self.routeline] autorelease];            self.routelineVIEw.fillcolor = [UIcolor redcolor];            self.routelineVIEw.strokecolor = [UIcolor redcolor];            self.routelineVIEw.linewidth = 5;        }        return self.routelineVIEw;    }    return nil;}

您可以根据需要调整代码,但是对于2点或更多点来说,这是非常简单的.

总结

以上是内存溢出为你收集整理的iPhone:如何在MapKit两点之间画线?全部内容,希望文章能够帮你解决iPhone:如何在MapKit两点之间画线?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存