如何让地图视图中的应用程序用户删除多个图钉?

Posted

技术标签:

【中文标题】如何让地图视图中的应用程序用户删除多个图钉?【英文标题】:how to let users of an app in mapview drop multiple pins? 【发布时间】:2013-08-09 12:12:42 【问题描述】:

如何编写一个地图视图,用户可以在其中放置多个图钉、进行注释和添加图片?

我知道如何在 Xcode 中编写地图视图以及如何放置预设引脚,但是我希望能够编写更复杂的代码,因为它与我希望创建的应用程序相关!

1:我如何让应用程序的用户放置多个引脚来指定某个位置?

2:一旦用户放下了一个图钉,我希望他能够添加注释和图片?

我对此进行了广泛的研究,虽然我已经找到了如何将基本地图编码到应用程序中,但我无法编写后续部分!

感谢您阅读我的问题,并且非常感谢您提供的任何建议。如果您认为有一个有用的 youtube 视频或博客可以帮助我,请把它放在底部,我会浏览它!

【问题讨论】:

【参考方案1】:

首先制作一个实现<MKAnnotation>协议的Annotation类:

@interface Annotation : NSObject <MKAnnotation>

    CLLocationCoordinate2D location;
    NSString *title;
    NSString *subtitle;
    NSString *otherInfo;
    UIImage *image;
    // etc...any other info you want to include with your annotation

然后当你想放下一个别针时:

-(void)dropPin:(CLLocationCoordinate2D *)location (NSString *)title (NSString *)subtitle (NSString *)otherInfo (UIImage *)image

    Annotation *pin = [Annotation annotationWithCoordinate:location];
    pin.title = title;
    pin.subtitle = subtitle;
    pin.otherInfo = otherInfo;
    pin.image = image;
    [self.mapView addAnnotation:pin];

您可能还希望将丢弃的图钉存储在一个数组或其他东西中,以便您可以跟踪它们并在以后引用它们。

查看 MapKit documentation 的MKAnnotation 协议以获取更多信息和示例。另请阅读this tutorial,它很好地概述了如何使用 MapKit 对象和协议,包括注释。

【讨论】:

谢谢!我会设置一个数组来存储丢弃的引脚吗? 在某处创建一个 NSMutableArray - 可能是地图视图控制器中的一个实例变量。然后在上面的 dropPin 方法中,直接做:[pinArray addObject:pin];

以上是关于如何让地图视图中的应用程序用户删除多个图钉?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 谷歌地图在地图上添加多个图钉

如何在地图视图 iphone 或 ipad 上获得可移动的图钉?

我试图在地图视图上放置多个图钉但出现错误

从给定位置拖动图钉

Swift 地图图钉标注和参数

如何在 Swift 3 中的 mapview 上生成不同的图钉?