【问题标题】:Default MkMapView Region默认 MkMapView 区域
【发布时间】:2014-07-24 10:14:58
【问题描述】:

当它简单地添加到视图时,请告诉我默认地图位置是什么。 我像这样添加了地图视图

MKMapView *mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,  self.searchBar.frame.size.height, 320, 180)];

mapView.mapType=MKMapTypeStandard;

mapView.delegate=self; 

[self.view addSubview:mapView];

地图上会显示什么位置?

这是根据设备坐标还是其他

谢谢

【问题讨论】:

    标签: ios iphone objective-c


    【解决方案1】:

    在谷歌搜索和阅读苹果地图文档之后。

    我找到了解决方案,默认位置是设置中为国际的设备本地 -> 常规 -> 国际 -> ResionFormat-> 选择您的国家/地区。

    地图将根据此设置聚焦。

    【讨论】:

      【解决方案2】:

      我认为系统会发出呼叫,Apple 的服务器会返回此信息。

      我用模拟器做了一个小测试(额外信息:我在西班牙):

      • 测试 1

        1. 关闭互联网访问
        2. iOS 模拟器 > 重置内容和设置
        3. 使用地图视图构建和运行应用程序
        4. 打开互联网访问
        5. 地图上的小滚动(只是为了稍微更改区域并开始下载地图图块)
        6. 美国正在屏幕上显示
      • 测试 2(不关闭互联网)

        1. iOS 模拟器 > 重置内容和设置
        2. 使用地图视图构建和运行应用程序
        3. 西班牙正在屏幕上显示

      我认为 Apple 不会在未经同意的情况下获取用户位置。它可能是基于操作系统的一部分的默认位置 IP 请求。

      【讨论】:

      • 这是一个非常有趣的问题 - 我也无法找到他们用于“真正的初始地图,针对该用户”的公式
      【解决方案3】:

      我很确定它是纬度/经度 0, 0,它位于非洲上方海洋的某个地方。您认为这是数量惊人的应用程序中的一个错误,这些应用程序没有设置纬度,最终您看到的地图只显示蓝色 - 海。

      建议你测试一下!

      【讨论】:

        【解决方案4】:

        似乎没有答案是正确的,至少在 iOS8 中是这样。 Apple 没有提供有关 mapView 的默认区域的文档信息,但我相信 MapKit 会向 Apple 服务器发出请求以获取当前的国家/地区代码。实际上,如果您尝试关闭 Internet 连接并打开一个带有简单地图的视图控制器,该地图刚刚分配并作为子视图添加到主视图,调试器将显示以下消息:

        无法确定当前国家代码:Error Domain = GEOErrorDomain Code = 2 "无法完成操作。(GEOErrorDomain 错误-2。)

        有一些未知的东西可以获取当前的国家代码并将该国家显示为地图视图中的初始区域。此“当前国家代码”与用户位置无关,因为该消息也是通过禁用位置服务来显示的(除非 Apple 在未经用户授权的情况下获取用户的位置,这是不可能的)。也许它使用Internet连接的IP地址来制作IP Tracert。我会尝试使用代理来验证。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-13
          • 2011-02-08
          • 2011-03-18
          • 2020-08-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多