【问题标题】:Show user selected location on mapview在地图视图上显示用户选择的位置
【发布时间】:2012-11-26 22:17:08
【问题描述】:

我在 UITextFields 中从用户那里获得坐标。他以度、分和秒为单位输入它们。转换后我从他们那里得到纬度和经度。我设置坐标并“构建”地图。这个构建的地图视图我将它作为子视图添加到 UIViewController。

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(finalLatValue,finalLongValue);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, LOCATION_DISTANCE, LOCATION_DISTANCE);
MKMapView *mvMap = [[MKMapView alloc] initWithFrame:CGRectMake(20,594,360,347)];

mvMap.mapType = MKMapTypeSatellite;
mvMap.autoresizingMask = UIViewAutoresizingNone;
mvMap.region = region;
[mvMap setRegion:region animated:YES];
//mvMap.showsUserLocation = YES;
[self.view addSubview:mvMap];

如您所见,我使用 finalLatValue 和 finalLongValue 创建了一个位置。然后我创建了一个地图并将其作为子视图添加到 self.view。它完美地工作。现在我只需要那个位置上的一个蓝点。我做了 setRegion:animated 和 showUserLocation..两者都没有工作。我错过了什么?这个想法是让用户以度、分和秒为单位输入坐标,并在地图上用蓝点显示位置。CGRectMake(20,594,360,347) 只是在视图的左下方创建我的地图视图,就像我一样按钮和标签遍布我的视野。如果需要更多信息,请询问。谢谢..

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc]init];
annotationPoint.coordinate = location;
annotationPoint.title=@"Company";
annotationPoint.subtitle = @"Company HQ";
[mvMap addAnnotation:annotationPoint];

所以我添加了这些行,现在我的位置显示一个红色图钉。现在就可以了。现在我有关于放大和缩小地图视图的问题。我该怎么做?任何帮助将不胜感激。我还有更多问题。

【问题讨论】:

    标签: ios location mkmapview subview animated


    【解决方案1】:

    Apple 提供了一个很好的文档

    位置感知编程指南

    http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/LocationAwarenessPG/MapKit/MapKit.html

    您可以在注释章节下找到:

    蓝点称为“UserLocAnnotation”(或类似名称)

    【讨论】:

    • 谢谢。我看到了教程并得到了一个注释点并使用了它,现在我的地图用红点显示了位置。我还有一个关于放大缩小的问题。我如何使用谷歌地图等地图并放大和缩小。该设施是否存在?如果存在,如何存在?
    • 是的,按用户缩放自动包含在内。 Programmaticalky Zoom 有点用,但并不难。
    • 红点是像兴趣点一样的固定位置,UserlocationAnnotation 是蓝点。阅读该文档,您会找到它。
    • 维也纳。谢谢。我得到了它。是的,红点是用户想去的位置。不是他现在的位置。虽然我仍然无法得到它。一旦应用程序启动,我们应该得到他的坐标,无论是度数、分秒数还是纬度/经度和一个蓝点。你能给我一个例子吗?我也可以放大和缩小工作。这很容易。有趣!我有 3 个问题要开始。 1.用红点显示位置(不是用户位置)-完成。2.放大缩小-完成 3.用蓝点显示用户位置-未完成。第三个我没有得到。帮帮我。跨度>
    【解决方案2】:

    调用 showsUserLocation 将显示用户的位置,但您正在寻求帮助,在用户输入的坐标处显示一个蓝点,这可能不是他们当前的位置。

    您想要做的是向您的地图添加一个 MKAnnotation。正如 AlexWien 所说,Apple 拥有关于该主题的非常完整的文档。此链接将引导您完成制作 MKAnnotation 并设置其位置的过程,然后定义地图将在该位置绘制的图像

    http://developer.apple.com/library/ios/documentation/userexperience/conceptual/LocationAwarenessPG/AnnotatingMaps/AnnotatingMaps.html#//apple_ref/doc/uid/TP40009497-CH6-SW1

    【讨论】:

    • 谢谢。是的,我对蓝点和红点感到困惑。我现在在该位置有一个红点,这不是用户当前位置。我可以使用它。我对放大和缩小功能有疑问。我可以像谷歌地图一样放大和缩小地图视图。地图视图上的“+”和“-”分别用于放大和缩小。
    • 您应该为此提出一个新问题,或者只搜索提出完全相同问题的现有问题:stackoverflow.com/questions/1031787/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多