在mapview上显示用户选择的位置

时间:2012-11-26 22:17:08

标签: ios location mkmapview subview animated

我正在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..Both没用。我错过了什么?这个想法是让用户以度,分和秒输入坐标,并在地图上用蓝点显示位置.CGRectMake(20,594,360,347)只是在视图的左下方创建我的地图视图,因为我有我的视图中的按钮和标签。如果需要更多信息,请询问。谢谢..

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

所以我添加了这些线条,现在我的位置显示了一个红色的针脚。那将是现在。现在我有关于放大和缩小地图视图的问题。我怎么能这样做?任何帮助将不胜感激。我还有更多问题。

2 个答案:

答案 0 :(得分:1)

Apple提供了很好的文档

LocationAwareness编程指南

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

您可以在Anotations章节中找到:

蓝点被称为'UserLocAnnotation``(或类似)

答案 1 :(得分:0)

调用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