Tag: mapkit

MapView检测滚动

我希望从UIScrollView像UITableView和UICollectionViewinheritance的MKMapView 。 这样你可以覆盖UIScrollView委托方法,并做你需要做的。 我已经find了将平移手势附加到MapView的方法,如下所示: UIPanGestureRecognizer* mapPanGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(mapPanGestureHandler:)]; [mapPanGestureRecognizer setDelegate:self]; [self.mapView addGestureRecognizer:mapPanGestureRecognizer]; 除了mapView有一个减速元素的事实之外,这个效果还算不错。 例如,如果您在中途滚动并抬起手指,则地图会继续前进并放慢速度,然后最终停止。 我正在做的是使用核心graphics在我的地图(另一个UIView )的覆盖上渲染一些离屏注释。 除了减速问题之外,它工作得很好。 我只需要知道地图已经移动了。 我需要的参数可以直接从地图本身查询。 有没有人find一种技术来减速时获得callback? 我的意思是,我想我可以使用一个计时器,当手势结束反复发射半秒钟左右。

如何打开谷歌地图导航url在iOS中的方向和声音?

我是新手在iOS我想做一个应用程序,包含地图工具包navigation.i要打开谷歌地图的导航url,如果用户设备有谷歌地图应用程序。 如果它不包含那么我想打开苹果地图在这里,我写了一个类似的代码 -(IBAction)navigationButtonPressed:(id)sender { if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://"]]) { NSString *urlString=[NSString stringWithFormat:@"comgooglemaps://?center=%f,%f&zoom=14&views=traffic",self.latitude,self.longitude]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString:urlString]]; } else { NSString *string = [NSString stringWithFormat:@"http://maps.apple.com/?ll=%f,%f",self.latitude,self.longitude]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]]; } } 但是,在这里,我想打开谷歌地图或苹果地图与用户之间的转动方向用户当前位置和选定的位置如何可能请给我解决scheme为此。

识别MKRoutestep何时完成

我正在尝试在iOS中使用MKDirections API实现轮到导航系统。 我能够获取路线的方向,并可以在地图上绘制多段线,当导航开始时,应用程序将使用Steps数组中的MKRouteStep对象开始显示指令。 现在的问题是 ,由于MKRouteStep对象中的距离是用户在遍历步骤path时覆盖的距离,我无法确定如何计算此距离。 有什么办法来计算这个距离 ? 目前我正在计算两个坐标之间的距离 ,即显示最后一条指令时的坐标和用户的当前位置,如果这个距离等于MKRouteStep中提到的距离,我正在显示下一条指令,由于这个指令延迟了指令交付给用户。 如果有任何方法来确定这个MKRouteStep结束的坐标或区域,我可以计算出用户是否在该区域,然后显示下一条指令。 可能是这个可以工作你的想法是什么,但是我怎么知道这个MKRouteStep从MKRouteStep的多段线数组中结束的坐标或区域? 请build议是否有任何其他良好的解决scheme。 任何帮助,高度赞赏。 谢谢。

目标C – 如何将度分秒转换为双精度

我的实际问题是 – 如何获得一个CLLocation对象时,在地图上的坐标值是可用的度分钟秒forms(作为一个string),而不是双。 所以,我正在寻找一种方法来转换Degree-Minute-Second到Double,我可以使用它来形成一个CLLocation对象。

将MKMapView指向像素坐标

我有一个快速的问题。 我使用自定义视图作为地图视图的标注附件。 我在将注释移动到所述视图的右下angular方面存在一些问题。 我目前正在尝试获取所选注释的CGPoint坐标,但除此之外,我已经绘制了一个空白任何帮助将不胜感激。 我正在使用的当前代码(我知道这是不正确的:) CGPoint bottomLeftPoint = CGPointMake(xOffset,[self.internalAnnotationCallout view].frame.size.height); CLLocationCoordinate2D bottomLeftCoord = [self.branchLocation convertPoint:bottomLeftPoint toCoordinateFromView:self.branchLocation]; MKCoordinateSpan span = {latitudeDelta: kMapMultiLatDelta, longitudeDelta: kMapMultiLatDelta}; MKCoordinateRegion region = {bottomLeftCoord, span}; [self.branchLocation setRegion:region animated:YES]; //[self.branchLocation setCenterCoordinate:newCenterCoordinate animated:YES];

在MapKit中沿着圆弧创build视觉元素

我如何添加和animation一个视觉元素,沿着一个弧,我已经在mapkit内创build ? 下面的代码将在两点之间创build一个不错的弧线。 想象一下,一个animation的视觉,将代表沿着这条弧线飞行的飞机。 -(void)addArc { CLLocationCoordinate2D sanFrancisco = { 37.774929, -122.419416 }; CLLocationCoordinate2D newYork = { 40.714353, -74.005973 }; CLLocationCoordinate2D pointsArc[] = { sanFrancisco, newYork }; // MKGeodesicPolyline *geodesic; geodesic = [MKGeodesicPolyline polylineWithCoordinates:&pointsArc[0] count:2]; // [self.mapView addOverlay:geodesic]; }

将指南针的航向计算为特定的坐标而不是北

我无法得到这个algorithm。 我正在试图制作一个指向某个地点的指南针,而不是指向北方。 有什么不对 我花了很多时间来解决这个问题,但是我找不到。 有任何想法吗? – (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ double distanceEast = (location.longitude > 0 && otherLocation.longitude < 0) ? 180 – location.longitude + otherLocation.longitude – -180: otherLocation.longitude – location.longitude; if (distanceEast < 0) { distanceEast += 360; } double distanceWest = (location.longitude < 0 && otherLocation.longitude > 0) ? -180 – location.longitude – […]

iOS6上的MapKit的性能问题

在更新到iOS 6之后,我注意到在使用多个叠加层平移或缩放MKMapView时,服务器性能下降。 我创build的应用程序拥有大约600多种不同颜色的多边形覆盖图,并且在iOS 5上运行无延迟(即使是在较旧的iOS设备上),现在在iOS 6上运行极其缓慢(在缩放和平移时),即使在最新的设备上也是如此。 我的直觉是,这是由于设备必须实际dynamic地创build地图(因为其基于vector),而不是仅仅在屏幕上显示瓦片。 有没有人有任何想法,以减less平移或缩放地图时遇到的滞后? 一些额外的信息,这个低帧率也发生在缩放或平移覆盖层不显示在屏幕上的区域,所以它不会在屏幕上创build覆盖层。

CoreLocation的准确性测量有多准确

我一直在testingCoreLocation的各个方面的准确性,并且惊讶地发现传递给CLLocationMangerDelegate方法的新旧位置提供的准确性值:(void)locationManager:didUpdateToLocation:fromLocation本身是非常不准确的。 走过一段路面(沿着一条沿着一侧build筑物的道路),我发现虽然CLLocationManager声称它所提供的CLLocations具有5米的水平精度,实际上MKUserAnnotation所显示的位置是任何达到离我所在的位置30米远(通常显示为一排build筑物的对面)。 这表明准确度读数本身并不准确。 CLLocationManager告诉我它的坐标精确到5米以内,但实际上多达30米。 澄清,这不是一个caching/时间戳问题它是在某些地区可重复,而不是随着时间的推移而改善。 有没有其他人遇到过这个问题?

寻找一个MKOverlayPathRenderer的例子

我想弄清楚如何使用一个新的MKOverlayPathRenderer类。 在我的应用程序中,我以前在使用iOS 6 SDK进行MKOverlayPathView时使用了MKOverlayPathView ,但不幸的是,它似乎不适用于iOS 7 SDK。 所以我试图将我的应用程序从MKOverlayPathView移动到MKOverlayPathRenderer ,但迄今为止没有成功。 MKPolylineRenderer工作正常,但MKOverlayPathRenderer不。 代码被调用,但是在地图上没有绘制覆盖图。 有没有人有MKOverlayPathRenderer工作的例子?