Tag: mapkit

如何以编程方式打开调用MKAnnotationView? (iPhone,MapKit)

我想以编程方式打开MKPinAnnotationView的标注。 例如,我在地图上放下10个针脚,并且想打开离我最近的那个针脚。 我怎么去做这个? 苹果已经为MKAnnotationView's指定了“selected”参数,但不鼓励直接设置它(这是行不通的,试过了)。 对于其余的MKAnnotationView只有一个高亮的( 同样的故事 ),并且可以ShowCallout方法。 任何提示,如果这是可能的呢?

我是否应该担心苹果会停止在iOS6中使用谷歌地图?

几乎所有主要的新闻媒体都报道说苹果将停止在iOS6中使用Google Maps服务。 我不认为任何人都知道究竟发生了什么变化,何时推出,苹果将如何实施这些变化,以及谷歌或苹果是否会开始为其服务收取费用。 由于这些不确定因素,我很难做出一个合理的决定,决定是否应该发布一个新的公共汽车跟踪器应用程序,我已经工作了一年多了。 我已经在2012年6月15日设定了最初的艰难的最后期限。我知道最好的办法是等待,看看将发生什么变化,以及苹果如何实施这些变化。 但是我有点不耐烦,强调要推迟发布date,因为任何进一步的延迟都会以非常显着的方式影响我的其他许多计划。 有关该应用的更多信息: 它根据从第三方运输机构API获得的信息提供实时公共交通信息。 它主要依靠iOS MapKit框架和iOS位置服务来实时显示给定路线上公交车的当前地理位置,并提供两个地点之间的公交信息。 据苹果介绍 ,iOS MapKit框架使用Google服务来提供地图数据。 某些function会调用Google地图应用程序,以提供交通规划和转由转到最近的站点的方向。 我的问题: 如果谣言成为现实,你认为苹果公司是否会在不影响已经使用MapKit框架的应用程序的情况下进行更改? 我应该准备哪些潜在的问题?

使用MapKit显示特定的区域

我想知道是否有可能只显示地图上的特定区域,而不是使用Map Kit的完整世界地图。 如果我想在我的应用程序中显示亚洲地图,那么映射工具包将隐藏地图的其余部分。

停留在Swift和MapKit中使用MKPinAnnotationView()

我有一个工作循环来设置一些工作数据点的标题和字幕元素的注释。 我想在同一个循环结构中做的是将引脚颜色设置为紫色而不是默认值。 我无法弄清楚是我需要做什么来挖掘我的地图视图相应地设置引脚。 我的工作循环和一些尝试… …. for var index = 0; index < MySupplierData.count; ++index { // Establish an Annotation myAnnotation = MKPointAnnotation(); … establish the coordinate,title, subtitle properties – this all works self.theMapView.addAnnotation(myAnnotation) // this works great. // In thinking about PinView and how to set it up I have this… myPinView = MKPinAnnotationView(); myPinView.animatesDrop […]

了解iOS中的NSXMLParser

我学习了当前的NSXMLParser。 我读了很多教程,但没有人能告诉我它是如何工作的。 有一个关于StackOverflow的教程? 我的问题是这个KML读取结构在我的应用程序,并显示与MKMapView 我的parsing器类看起来像: #import <Foundation/Foundation.h> @interface Parser : NSXMLParser @property (nonatomic, strong) NSString *rowElementName; // this is the element name that identifies a new row of data in the XML @property (nonatomic, strong) NSArray *attributeNames; // this is the array of attributes we might want to retrieve for that element name @property (nonatomic, […]

在iOS7中检测MKOverlay的触摸(MKOverlayRenderer)

我有一个可能绘制数百个多边形的MKMapView。 假设在iOS7上使用MKPolygon和MKPolygonRenderer。 我需要的是用户触摸其中一个多边形的方式。 例如,它们代表地图上某个人口密度的地区。 在iOS6上,MKOverlay被绘制为MKOverlayViews,因此触摸检测更直接。 现在使用渲染器,我真的不知道这是怎么做的。 我不确定这会帮助甚至是相关的,但作为参考,我会张贴一些代码: 这使用mapData将所有MKOverlay添加到MKMapView。 -(void)drawPolygons{ self.polygonsInfo = [NSMutableDictionary dictionary]; NSArray *polygons = [self.mapData valueForKeyPath:@"polygons"]; for(NSDictionary *polygonInfo in polygons){ NSArray *polygonPoints = [polygonInfo objectForKey:@"boundary"]; int numberOfPoints = [polygonPoints count]; CLLocationCoordinate2D *coordinates = malloc(numberOfPoints * sizeof(CLLocationCoordinate2D)); for (int i = 0; i < numberOfPoints; i++){ NSDictionary *pointInfo = [polygonPoints objectAtIndex:i]; CLLocationCoordinate2D point; point.latitude […]

想要:如何可靠地,一致地select一个MKMapView注释

在调用MKMapView的setCenterCoordinate:animated:方法(没有animation)之后,我想调用selectAnnotation:animated 🙁带有animation),以便注释从新集中的图钉popup。 现在,我只需要注意mapViewDidFinishLoadingMap:然后select注释。 但是,这是有问题的。 例如,当不需要加载额外的地图数据时,此方法不会被调用。 在这些情况下,我的注释不被选中。 🙁 很好。 我可以在设置中心坐标后立即调用它。 啊,但在这种情况下,有可能有地图数据加载(但尚未完成加载)。 我可能会过早地冒这个风险,animation最多只会变成斑点。 因此,如果我理解正确的话,这不是一个知道我的坐标是否可见的问题,因为它可能会散布几乎一定距离,并且必须加载新的地图数据。 相反, 这是一个知道是否需要加载新的地图数据,然后采取相应的行动。 任何关于如何完成这个任务的想法,或者如何在地图视图重新居中之后(可靠地)select一个注释到注释所在的坐标上? 线索赞赏 – 谢谢!

计算贴图时,如果在“叠加”贴图集之外的情况下显示在MapRect中

我正在研究一个使用MKOverlay视图的应用程序,将我自己的自定义地图放在Google底图上。 我一直在使用苹果公司出色的TileMap示例代码(来自WWDC 2010)作为指导。 我的问题 – 当“overzoomed”到比我生成的tile组更深的细节级别时,代码不显示任何内容,因为在计算的Z级没有可用的tile。 我想要的行为 – 当“超越”应用程序应该不断放大最深的瓷砖水平。 覆盖层变得模糊是一种很好的用户体验 – 覆盖层消失是一个非常糟糕的体验。 这里是返回要绘制的瓷砖的代码 – 我需要弄清楚如何修改这个来限制Z-深度,而不会破坏为叠加瓷砖计算的框架的缩放比例。 有什么想法吗??? – (NSArray *)tilesInMapRect:(MKMapRect)rect zoomScale:(MKZoomScale)scale { NSInteger z = zoomScaleToZoomLevel(scale); // PROBLEM: I need to find a way to cap z at my maximum tile directory depth. // Number of tiles wide or high (but not wide * high) NSInteger […]

跟踪MKMapView中心协调同时平移

我在我的应用程序中实现了地图function,允许用户通过平移来设置当前位置。 所有这一次,我想在centerCoordinate MKAnnotation centerCoordinate有一个MKAnnotation 。 所以我想要做的就是跟踪地图的中心坐标变化的时间,正确地改变注释的坐标。 这种行为与Uber , Hailo等人的行为类似。 我尝试了一个基于时间的实现,其中每个0.00001s的centerCoordinate将被检查并且注释也将被移动。 但是,如果地图不轻轻地滑动,则注释会从一个地方跳到另一个地方,这不会构成一个好的用户界面。 我尝试的另一个实现是通过手势识别器和MKMapView ( regionDidChange / regionWillChange )的委托方法。 这也是一个非常突然的过渡。 任何人都可以请告诉我如何更好地做到这一点?

iOS Mapkit自定义标注

这里有一个样本自定义标注,我想要得到一个类似的风格。 我正在考虑从MKAnnotationinheritance,但我迷失了如何启动它,我不知道标注的devise是否可以被覆盖。 任何想法如何实现这个自定义标注与UI控制里面? 编辑:这是我的代码从下面的类似StackOverflow答案: – (MKAnnotationView *)mapView:(MKMapView *)mapview viewForAnnotation:(id <MKAnnotation>)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; static NSString* AnnotationIdentifier = @"AnnotationIdentifier"; MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier]; if(annotationView) return annotationView; else { UIImage *img = [UIImage imageNamed:@"default_thumb.png"]; MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; annotationView.canShowCallout = YES; annotationView.image = img; annotationView.draggable = YES; /* // […]