- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要在 map 上显示 MKOverlay,但无法让它实际出现。
我正在关注 example来自 Apple 的 Location Awareness Programming Guide并且叠加层不会显示。任何帮助将不胜感激,这是我制作的第一个 iPhone 应用程序,所以我可能会遗漏一些简单的东西。
NavViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface NavViewController : UIViewController <MKMapViewDelegate> {
}
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end
NavViewController.m
#import "MSUNavViewController.h"
#import <CoreLocation/CoreLocation.h>
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolygon class]])
{
MKPolygonView* aView = [[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay];
aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
aView.lineWidth = 3;
return aView;
}
return nil;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Define an overlay that covers Colorado.
CLLocationCoordinate2D points[4];
points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);
MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";
[_mapView addOverlay:poly];
}
Storyboard:
任何编码建议将不胜感激。谢谢!
最佳答案
确保将 mapView 的 delegate
设置为 View Controller 实例(在这种情况下可能是 File's owner
)。
在界面构建器中,右键单击 map View ,从委托(delegate)右侧的空心圆拖动到左侧 Pane 中占位符部分的文件所有者图标。
对于 Storyboard,连接到 View Controller 图标而不是文件所有者。
关于ios - 如何: Display MKOverlay on MKMapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056535/
我正在尝试向 MKMapView 添加叠加层,通过首先在 map 叠加层 (mapView.overlays: [MKoverlay]) 存储中查找叠加层来避免重复。 这就是我目前正在尝试的 func
我想创建一个将几个 MKShape 组合在一起的 MKOverlay,但我在使用复合 MKOverlayRenderer 时遇到了问题。 我想避免将所有这些都作为单独的 MKOverlays 和 MK
我正在使用 MKMapView 和 MKPolyline 来显示路线形状。当在我的 MKMapView 上放置一个注释并且那里已经有另一个注释时,它会异步地向我的方向提供程序发送路由调用并添加形状覆盖
我目前正在 Apple MapKit 中使用 MKOverlays。我尝试绘制建筑物内部的房间,当我将 map 置于 3D 模式时,房间会消失并显示在 map 中的建筑物下方。 以下是我将它们添加到
在我的应用程序中,我使用 MKPolyline 来跟踪用户的路径。有时(并非所有时间,我不明白),当新线段添加到 map 时,整条线都会闪烁。有时它没有。这是用于添加行的代码: CLLocationC
我通过制作符合 MKOverlay 协议(protocol)的 NSObject 子类和 MKOverlayPathRenderer 的子类来制作自定义叠加层。我的目标是制作一个锚定到 MKMapVi
我的 map 中有两个覆盖选项:MKCircleOverlay 和 MKPolygonOverlay。第一个是可变半径,通过 UISlider 控制。最后一个是可自定义的,具体取决于角的数量和位置。如
我已将 MKCircle 作为 MKOverlay 添加到我的 MKMapView。我还添加了一个 UISlider 来决定圆的半径。不幸的是,当使用它时,它似乎有点“滞后”,不像我想要的那样流畅。
我正在尝试使用 MKOverlayView 添加 png 图像作为自定义 map 。我几乎就在那里 - 我能够将图像排列在正确的位置,并且我知道 MKOverlayView 子类中的 -drawMap
我正在使用自定义 MKOverlay 在 MKMapView 上绘制天气数据。绘图是在 CoreGraphics 中完成的。对于这种特殊情况,由于它处理平铺的方式,在 drawMapRect:zoom
我已经使用手势识别器和给定叠加层的 boundingRect 来确定用户何时点击它。但是,我现在想让标注出现在用户点击的覆盖区域上,就像注释一样。我必须将叠加层创建为注释才能完成此操作吗?谢谢。 最佳
我正在尝试在平铺图像(下面的代码)顶部显示带有 kml 叠加层的平铺图像,并且收到以下错误: 'NSInvalidArgumentException', reason: '-[MKPolyline t
我在 CALayer(在 MKOverlay 上)上有一个带有一系列动画图像的 MKOverlay。每当我在 map 上移动或缩放时,都会再次添加 MKOverlay,这会导致同一叠加层的多个版本一次
我的应用程序是实时跟踪器,多个用户登录并通过将他们的坐标发送到我们的网络服务来更新他们的位置,然后每 2 分钟回调一次,让我们在我的 MapView 上显示所有用户。 每次我在 connectionD
如何更改 MKOverlay 的不透明度? 它目前是透明的 - 我不想要。 最佳答案 我深入引用了如何做到这一点: 在 TileMap 示例中,我们在 drawMapRect:zoomScale:in
我正在尝试使用谓词过滤掉 MKOverlays 数组,但出现异常。 NSArray *pointsArray = [viewController.mapView overlays];
我正在根据方向绘制叠加层。我从路线 a 到路线 b,然后从路线 b 到路线 c。 我想检测覆盖是否在 mkoverlay 上的任何地方被点击。 我用了这个例子Detecting touches on
我正在尝试更改 map 上现有 MKOverlay 的颜色。 我添加了几个 MKPolygons 作为 mapView 的独特叠加层。在渲染它们时,叠加层的颜色由 mapView rendererFo
我需要自定义 MKOverlay 笔触样式。我需要在叠加层内部使用更宽更浅的颜色,就像这个笔触。 我知道怎么画了, class PolygonRenderer:MKPolygonRenderer {
更具体地说...iOS 的 MapKit 框架是否在渲染之前内置了 MKPolyline 和 MKPolygon 叠加层的泛化? 模拟器看起来很粗糙,显示的是几条由数百个点组成的折线。我是否达到了 i
我是一名优秀的程序员,十分优秀!