jjzjj

MKOverlay

全部标签

ios - MKCircleRenderer 填充颜色重叠问题

我正在将MKCircleRenderer添加到map代码中-(MKOverlayRenderer*)mapView:(MKMapView*)mapViewrendererForOverlay:(id)overlay{MKCircle*circle=overlay;MKCircleRenderer*circleView=[[MKCircleRendereralloc]initWithOverlay:circle];circleView.fillColor=[UIColorcolorWithRed:1.0green:0.0blue:0.0alpha:0.1];returncircleVie

ios - 如何在 MKMapView 上添加圆形区域

我正在尝试在我的MKMapView上添加一个圆形区域,如下图所示,作为我当前的位置。我可以用注释固定map,但不知道如何让它显示像这样具有半径的圆形区域并对其进行着色。 最佳答案 所以我想通了...下面是我如何与代码一起完成的。第1步:-创建MKCircleMKCircle*circleOverlay=[MKCirclecircleWithCenterCoordinate:zoomLocationradius:300];//radiusinmeters第2步:-设置title并添加到map叠加层[circleOverlaysetTi

iphone - 如何在 viewForOverlay : 中区分两条 MKPolyline

我正在将多个MKPolylines作为overlays加载到MKMapView上。我希望能够区分这些,如何改变颜色、线宽等。但是,当viewForOverlay:被调用时,它看到我所有的MKPolylines都是一样的,这不允许我改变它们中的任何一个。-(MKOverlayView*)mapView:(MKMapView*)mapViewviewForOverlay:(id)overlay{if([overlayisKindOfClass:[MKPolylineclass]]){MKPolylineView*aView=[[[MKPolylineViewalloc]initWithPo

ios - MKMapView 缩放以适合覆盖

我的MKMap上有一个圆形叠加层,用户可以更改其半径。我怎样才能做到这一点,当半径改变时,map会自动缩放以适应新的半径大小。我试过:_mapView.visibleMapRect=circleOverlay.boundingMapRect;但它放大得太远,围绕我的圆形叠加层的笔划在顶部和底部被切断。有人可以帮我解决这个问题吗? 最佳答案 尝试:_mapView.visibleMapRect=[_mapViewmapRectThatFits:circleOverlay.boundingMapRect];甚至mapRectThatFi

ios - MKOverlay 更新闪烁

在我的应用程序中,我使用MKPolyline来跟踪用户的路径。有时(并非所有时间,我不明白),当新线段添加到map时,整条线都会闪烁。有时它没有。这是用于添加行的代码:CLLocationCoordinate2Dcoords[2];coords[0]=CLLocationCoordinate2DMake(newLocation.coordinate.latitude,newLocation.coordinate.longitude);coords[1]=CLLocationCoordinate2DMake(oldLocation.coordinate.latitude,oldLocat

ios - iOS6 上 MapKit 的性能问题

更新到iOS6后,我注意到在平移或缩放具有多个叠加层的MKMapView时服务器性能下降。我创建的一个应用程序有大约600个不同颜色的多边形叠加层,在iOS5上运行无延迟(即使在较旧的iOS设备上),现在在iOS6上运行非常延迟(缩放和平移时),即使在最新的设备上也是如此。我的直觉是,这是因为设备必须实际动态创建map(因为它是基于矢量的),而不仅仅是在屏幕上显示图block。有没有人有任何想法来减少平移或缩放map时遇到的延迟?一些额外的信息,这种低帧率也会发生在缩放或平移区域时,其中叠加层根本没有显示在屏幕上,因此这与叠加层出现在屏幕上时的创建无关。 最

ios - 无法绘制跨越经度 +/-180 的 MKPolylineView

我在MKMapView上绘制MKPolylineView时遇到问题。这条线代表一次环游世界的旅行,起点和终点都在纽约附近,总是向东行驶。从日本到旧金山的行程中有一段横跨太平洋,因此经度为+/-180。MKPolylineView确实连接了这两点,但它的移动方向错误。也就是说,这条线路从日本向西返回旧金山,而不是向东穿越太平洋。我没有看到任何选项可以让我指定线段应该沿着哪个方向连接两点。简单来说,MKMapView似乎不明白地球是圆的。有没有一种方法可以让我按预期画线,从日本向东行驶到旧金山?我有一张截图可以清楚地显示问题:ThePolylinehttp://www.builtlight

ios - 以米为单位的自定义 MKOverlay

我通过制作符合MKOverlay协议(protocol)的NSObject子类和MKOverlayPathRenderer的子类来制作自定义叠加层。我的目标是制作一个锚定到MKMapView上的用户位置的圆形叠加层,并且我的工作正常。每当设置叠加层上的坐标时,我的渲染器都会使用键值观察使它绘制的路径无效,然后重新绘制。我遇到的问题是我希望圆的半径以米为单位,但我认为我的数学计算不正确或者我遗漏了什么。我在下面发布了覆盖对象和渲染器的源代码(渲染器的接口(interface)中没有任何内容)。举个例子,我将半​​径设置为200米,但在mapView中,它只显示为大约10米。有人知道如何解

ios - 具有多个覆盖内存问题的 MKMapView

叠加层和MapKit似乎存在“问题”。与注释不同,叠加不会被重用,因此当添加多个叠加时会导致真实设备上的内存问题。我多次遇到这个问题。所以我的问题是,我如何重用MKOverlay并因此提高MapKit上的叠加层的性能? 最佳答案 对此的答案不是“重用”,而是将它们全部绘制到一个MKOverlayView中,然后将其绘制在map上。多个MKPolygons、MKOverlays等在map上绘制时会导致大量内存使用。这是由于MapKit没有重用叠加层。由于注释具有reuseWithIdentifier,而覆盖却没有。每个叠加层都会在ma

ios - 自定义 MKOverlayView 线宽

我有一个自定义的MKOverlayView,它绘制了一条简单的线。在drawMapRect:中,我正在设置CGContextSetLineWidth(context,30);完全放大时看起来不错,但是当你缩小时,线会变得越来越细。MKOverlayView引用资料说它会自动缩放到map的缩放级别。无论我的缩放级别如何,如何强制它绘制相同的宽度?我注意到MKPolylineView(和MKPolygonView)正确地做到了这一点......每当您缩放以调整以保持相同的宽度时,您都可以看到线条的宽度调整大小。如何在我的overlayView中执行此操作? 最佳