我已经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两点之间画线?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)