请告诉我什么是默认的Map位置时,它只是简单地添加到视图。我添加了mapview这样
MKMapView *mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, self.searchBar.frame.size.height, 320, 180)];
mapView.mapType=MKMapTypeStandard;
mapView.delegate=self;
[self.view addSubview:mapView];
Map上显示的是什么位置?
这是根据设备坐标还是其他
谢谢
5条答案
按热度按时间gmxoilav1#
在谷歌搜索和阅读苹果Map文档之后。
我找到了解决方案,默认位置是设备本地,即在设置-〉一般-〉国际-〉ResionFormat-〉选择您的国家/地区。
Map将根据此设置聚焦。
kb5ga3dv2#
我想系统会打个电话,苹果的服务器会返回这个信息。
我做了一个小测试与模拟器(额外信息:我在西班牙):
1.测试1
1.关闭互联网接入
1.构建并运行带有mapview的应用程序
1.打开互联网接入
1.小滚动Map(只是为了改变区域一点,并开始与Map瓦片下载)
1.美国显示在屏幕上
1.测试2(不关闭互联网)
1.构建并运行带有mapview的应用程序
1.西班牙显示在屏幕上
我不认为苹果在未经同意的情况下获取用户位置。这可能是一个基于操作系统的默认位置IP的请求。
lawou6xi3#
我很确定它是纬度/经度0,0,这是在非洲上方的海洋中的某个地方。你认为这是一个错误,在一个惊人的数量的应用程序,不设置纬度,你最终看到一个Map显示的只是蓝色-大海。
建议你测试一下!
eulz3vhy4#
似乎没有答案是正确的,至少在iOS8中是这样。Apple没有提供有关mapView默认区域的文档信息,但我相信MapKit会向Apple服务器发出请求以获取当前国家/地区代码。事实上,如果您尝试关闭Internet连接并打开一个带有简单Map的viewcontroller,并将其作为子视图添加到主视图中,调试器将显示以下消息:
无法确定当前国家代码:Error Domain = GEOErrorDomain Code = 2“无法完成操作。(GEOErrorDomain错误-2。)
有一个未知的东西获取当前的国家代码,并在Map视图中显示该国家作为初始区域。这个“当前国家代码”与用户位置无关,因为该消息也是通过禁用位置服务显示的(除非苹果在未经用户授权的情况下获取用户位置这是不可能的)。也许它使用互联网连接的IP地址来进行IP tracert。我会尝试使用代理来验证。
r3i60tvu5#
你可以用
mapViewWillStartLoadingMap
delegate方法,在该方法中,您可以如下所示自定义位置坐标,
注意:这不需要位置许可检查或授权。