如何在我的应用程序视图中显示地图?
Posted
技术标签:
【中文标题】如何在我的应用程序视图中显示地图?【英文标题】:How to present a map inside one my app's views? 【发布时间】:2017-09-14 21:59:32 【问题描述】:我的应用程序的一个功能是查明用户的当前位置。它会自动请求当前位置并获取地址。然而,这通常不够准确。
我希望应用程序仍然自动请求位置和地址,但当用户点击按钮继续时,会在屏幕中心显示一个带有估计当前位置指示的地图,并允许用户拖动地图以细化更精确的位置。
我能够以编程方式将用户交给带有当前位置指示器的地图应用程序,但我不知道如何让用户留在我的应用程序中并呈现仅针对优化当前位置而优化的地图 UX(除了缩放和拖动之外没有其他功能)。
我使用了一些执行此操作的应用程序,但我找不到任何有关如何自己完成此操作的指导。谁能指路?
【问题讨论】:
【参考方案1】:我的建议是使用 MapKit,将用户定位在其上并以缩放非常接近的方式设置跨度(例如 0.0001):
let span = MKCoordinateSpanMake(0.0001, 0.0001)
let region : MKCoordinateRegion = MKCoordinateRegionMake(userLocation.coordinate, span)
map.setRegion(region, animated: true)
【讨论】:
Andreza,谢谢——但我可以轻松配置地图的属性。相反,我试图在我的应用程序中显示地图,而不是将用户交给 iPhone 的地图应用程序。优化位置是工作流程中的众多步骤之一,我希望让用户获得一致的体验。 但是我提到的不是将您的用户重定向到 iPhone 地图,而是将地图添加到您的应用程序(MapView)并以您可以做您想做的方式配置它。 . 那个解决方案没有用? 清理我的代码后,它似乎仍在打开地图应用程序。我有其他具有类似代码的应用程序在 MKMapView 中显示地图。我会尝试找出原因并发布原因。 好的,让我一步一步告诉你需要做什么,你检查你的代码... 1 - 在你的故事板上,在你希望地图出现的 ViewController 上,你添加一个 Map套件视图。 2 - 在您的视图控制器中为该地图视图创建一个出口 3 - 将委托 MKMapViewDelegate 添加到您的视图控制器和 ViewDidLoad 上的插座 4 - 向 CLLocationManager 声明一个 var/let,以便您可以请求获取用户位置和请求位置的权限 5 - 添加将 CLLocationManagerDelegate 委托给您的视图控制器和您创建的 var/let以上是关于如何在我的应用程序视图中显示地图?的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何使用谷歌地图在我的应用中显示用户当前位置?