从 MapView 中选择位置

Posted

技术标签:

【中文标题】从 MapView 中选择位置【英文标题】:Selecting Location from MapView 【发布时间】:2012-01-30 18:40:48 【问题描述】:

我正在考虑一个应用程序,用户可以在 iphone 应用程序上选择一个位置。我用谷歌搜索了它,没有发现任何有用的东西。

我的问题是,是否可以让用户使用 MapKit/CLLocation 从 iphone 应用程序中选择一个位置?如果是,请帮我从哪里开始。

谢谢

【问题讨论】:

【参考方案1】:

您可以在地图上添加长按手势识别器:

UILongPressGestureRecognizer* lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.5;
lpgr.delegate = self;
[self.map addGestureRecognizer:lpgr];
[lpgr release];

在句柄长按方法中获取CLLocationCordinate2D:

- (void) handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer 
if (gestureRecognizer.state == UIGestureRecognizerStateBegan) 
    /*
     Only handle state as the touches began
     set the location of the annotation
     */

    CLLocationCoordinate2D coordinate = [self.map convertPoint:[gestureRecognizer locationInView:self.map] toCoordinateFromView:self.map];

    [self.map setCenterCoordinate:coordinate animated:YES];

  // Do anything else with the coordinate as you see fit in your application

   

【讨论】:

【参考方案2】:

看看this SO answer。答案不仅告诉您如何获取坐标,还告诉您如何在地图上放置图钉(注解)。

【讨论】:

以上是关于从 MapView 中选择位置的主要内容,如果未能解决你的问题,请参考以下文章

从 mapView 中检索当前用户位置,而地图不在屏幕上

如何在 Android 的 MapView 中更新当前位置的蓝点标记

安卓; MapView,如何设置默认位置?

如何检测在 MapView 中选择了哪个注释

MapView:UIViewRepresentable 不以获取的列表为中心

如何在 android 的 MapView 中更改地图控制器的位置?