0

我正在实现一个 iOS 应用程序,我想以编程方式设置用户位置。我试过mapView。

        mapView.userLocation.location.coordinate=CLLocationCoordinate2DMake(latFloat, longFloat);

它告诉这已分配给只读属性。

那么如何以编程方式分配用户位置?旨在在自定义位置显示蓝点。

4

2 回答 2

2

据我所知,你不能。该属性用于用户位置,而不是任意点。你应该使用 MKAnnotation 和它的相关类来做这样的事情。如果你想用类似于用户位置的脉冲圆做一个点,你可能会发现自定义 MKOverlay 更合适。请注意,尽管多个 MKOverlay会使您的应用程序崩溃,在这种情况下,您想使用 MKOverlayPathView 在一个 MKOverlayView 中绘制许多东西。

** 顺便说一句,为了在模拟器中进行测试,您可以将任意点列表传递给模拟器,它将作为用户位置输入应用程序。这仅用于测试各种与地图相关的代码,实际上不会在“现实世界”中提供帮助或工作**

例如,假设“注释”是一个包含注释的 NSMutableArray。

-(MKAnnotationView *)mapView:(MKMapView *)mV 
    viewForAnnotation:(id <MKAnnotation>)annotation {

  MKPinAnnotationView *pinView = nil;
  MKPinAnnotationColor pinColor = MKPinAnnotationColorPurple;
  if([annotations lastObject] == annotation)  
  {
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"LastLocationIdentifier"];
    pinColor = MKPinAnnotationColorGreen;
  }
  else
  {
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PreviousLocationIdentifier"];
  }

  pinView.pinColor = pinColor;

  return pinView;
}

我目前无法对此进行测试,但稍后会进行。

于 2012-09-17T09:39:08.270 回答
1

使用 .gpx 文件根据需要设置用户位置。

脚步:

  • 按 Commd + N
  • 转到资源
  • 然后选择gpx
  • 为其输入名称并选择要保存的位置

  • .gpx 文件是 XML 格式的文件。

  • 在 lat = "37.331705" lon = "-122.030237" 中,根据自己的位置更改这个 lat 和 lon 值。
  • 如果您选择了“不要模拟我的位置”,请不要忘记单击模拟位置按钮。然后,将其更改为您保存的位置名称..

有关更多详细信息,请查看此内容-----

http://plainoldstan.blogspot.cz/2011/08/on-gpx-files-for-xcode-42.html

(只是忘记添加)同样在您的 viewDidLoad 方法中,不要忘记添加-

yourMapView.showuserslocation = YES;

于 2013-01-29T06:38:04.467 回答