1

我从 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];

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

4

2 回答 2

1

Apple 提供了一个很好的文档

位置感知编程指南

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

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

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

于 2012-11-26T22:22:36.423 回答
0

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

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

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

于 2012-11-27T00:00:49.653 回答