
例如,假设我有一条长达一英里的折线,并希望地图保持在一个constand distacne equoomlent放大:
MKCoordinateRegion userRegion = MKCoordinateRegionMakeWithdistance(self.currentLocation.coordinate,1000,1000); [self.mainMap setRegion:[self.mainMap regionThatFits:userRegion] animated:YES];
我该怎么做呢?请提供我可以下载的完整代码示例或示例项目!
解决方法 MKMapPoint * malloc / assign:MKMapPoint *newPoints = malloc((sizeof (MKMapPoint) * nbPoints));newPoints[index] = varMKMapPoint;free(newPoints);
MKpolyline必须根据您的需要进行初始化:
MKpolyline *polyline = [MKpolyline polylineWithPoints:newPoints count:nbPoints];[self.mapVIEw addOverlay:polyline];
要显示您的MKpolyline,您必须使用vIEwForOverlay:
- (MKOverlayVIEw *)mapVIEw:(MKMapVIEw *)mapVIEw vIEwForOverlay:(ID <MKOverlay>)overlay{ MKOverlayVIEw* overlayVIEw = [[MKOverlayVIEw alloc] initWithOverlay:overlay]; if([overlay isKindOfClass:[MKpolyline class]]) { MKpolylineVIEw *backgroundVIEw = [[MKpolylineVIEw alloc] initWithpolyline:overlay]; backgroundVIEw.fillcolor = [UIcolor blackcolor]; backgroundVIEw.strokecolor = backgroundVIEw.fillcolor; backgroundVIEw.linewidth = 10; backgroundVIEw.lineCap = kCGlineCapSquare; overlayVIEw = backgroundVIEw; } return overlayVIEw;} 要使用此方法,您必须将您的点转换为CLLocation,它将返回您将设置为mapVIEw的MKCoordinateRegion:
- (MKCoordinateRegion)getCenterRegionFromPoints:(NSArray *)points{ CLLocationCoordinate2D topleftCoordinate; topleftCoordinate.latitude = -90; topleftCoordinate.longitude = 180; CLLocationCoordinate2D bottomrightCoordinate; bottomrightCoordinate.latitude = 90; bottomrightCoordinate.longitude = -180; for (CLLocation *location in points) { topleftCoordinate.longitude = fmin(topleftCoordinate.longitude,location.coordinate.longitude); topleftCoordinate.latitude = fmax(topleftCoordinate.latitude,location.coordinate.latitude); bottomrightCoordinate.longitude = fmax(bottomrightCoordinate.longitude,location.coordinate.longitude); bottomrightCoordinate.latitude = fmin(bottomrightCoordinate.latitude,location.coordinate.latitude); } MKCoordinateRegion region; region.center.latitude = topleftCoordinate.latitude - (topleftCoordinate.latitude - bottomrightCoordinate.latitude) * 0.5; region.center.longitude = topleftCoordinate.longitude + (bottomrightCoordinate.longitude - topleftCoordinate.longitude) * 0.5; region.span.latitudeDelta = fabs(topleftCoordinate.latitude - bottomrightCoordinate.latitude) * 1.2; //2 region.span.longitudeDelta = fabs(bottomrightCoordinate.longitude - topleftCoordinate.longitude) * 1.2; //2// NSLog(@"zoom lvl : %f,%f",region.span.latitudeDelta,region.span.latitudeDelta); return region;} 希望这可以帮助.
总结以上是内存溢出为你收集整理的iphone – MapKit Polyline自定义缩放?全部内容,希望文章能够帮你解决iphone – MapKit Polyline自定义缩放?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)