Iphone MKMapView问题

Iphone MKMapView问题,iphone,iphone-sdk-3.0,mapping,Iphone,Iphone Sdk 3.0,Mapping,我在模拟器中使用MKMapView控件(sdkv3.0)已经有几天了。我已经能够映射任意位置,缩放它,放置一个pin,并添加注释。然而,我对MKMapView控件本身(在模拟器之外)的全部功能仍然有点模糊 如果选中MKMapView的“显示用户位置”属性,iPhone模拟器就会在苹果总部留下一个pin。显然,模拟器实际上并没有对手机的实际位置进行地理编码 但是,此功能是否意味着MKMapView中有一个CLLocationManager实例?换句话说,当选择“显示用户位置”选项时,MKMapVi

我在模拟器中使用MKMapView控件(sdkv3.0)已经有几天了。我已经能够映射任意位置,缩放它,放置一个pin,并添加注释。然而,我对MKMapView控件本身(在模拟器之外)的全部功能仍然有点模糊

如果选中MKMapView的“显示用户位置”属性,iPhone模拟器就会在苹果总部留下一个pin。显然,模拟器实际上并没有对手机的实际位置进行地理编码

但是,此功能是否意味着MKMapView中有一个CLLocationManager实例?换句话说,当选择“显示用户位置”选项时,MKMapView会自动找到手机的位置并输入pin码吗?如果是,它是否会在不提示获得位置许可的情况下执行此操作?我可以在IB中设置默认的缩放级别吗

谢谢你抽出时间


克雷格·布坎南我不这么认为。在英国的手机上运行时,默认的地图视图仍然以无限循环为中心


我尽量避免使用IB来做这类事情,并使用代码。

它确实找到了用户的当前位置,并且请求了许可(不过,与所有其他应用一样,我确信可以设置默认的“是”)。我几乎100%肯定你不能设置放大IB。我肯定它在编程上很简单,但我(和你一样)正在等待苹果在MKMaps上给我们一些411!但我们可以一直打字,直到有东西能用;-)


祝你好运

下面是一个通过编程进行缩放的示例(IB中没有这种方法):

我不确定这是否是您想要的,但您是否尝试过存储CLLocation的
mapView.userLocation


还请记住,在iPhone模拟器中,pin码将始终落在Apple HQ上,除非(从Xcode4)更改模拟用户的位置-这是Xcode控制台上方的位置服务箭头图标。使用设备时,坐标应移动到您的GPS位置,具体取决于覆盖范围。

在模拟器中,CLLocationManager被硬编码以返回对Apple HQ的修复。在实际设备上,CLLocationManager将按精度顺序返回修复,然后是Skyhook Wireless,然后是Cell-Mast三角测量,最后是GPS子系统。请注意,在所有设备上,并非所有设备都可用。iPod Touch仍然可以返回位置,但只能从Skyhook Wireless(即无线AP的注册位置)返回

模拟器仅返回一个位置修复,如果要查看正确的位置并放大真实设备,则需要在MKMapView上设置用户位置标志时注册CLLocationManagerDelegate,并使CLLocationManager startUpdatingLocation


使用收到的更新和上述代码设置MKMapView的中心和范围,以允许地图居中并放大该位置。最好将量程设置为与提供的定位点的精度有关的值,这样可以看到GPS定位点的整个蓝环,为用户提供有用的反馈。

您无法设置默认的放大倍数

关于蓝点在苹果总部上方的位置,它只在模拟器中这样做。在一台设备上,它会告诉你你的位置

   MKCoordinateRegion region;
   MKCoordinateSpan span;
   span.latitudeDelta=0.02 / 10; // zoom level
   span.longitudeDelta=0.02 / 10;

   CLLocationCoordinate2D location;
   location.latitude = latitude; // set these var's first!
   location.longitude = longitude;

   region.span=span;
   region.center=location;

   [mapView setRegion:region animated:TRUE];
   [mapView regionThatFits:region];