当前位置: 首页 > 面试题库 >

在Swift中的MKMapView中显示当前位置并更新位置

古彦
2023-03-14
问题内容

我正在学习如何使用新的Swift语言(只有Swift,没有Objective-C)。为此,我想用地图(MKMapView)做一个简单的视图。我想查找并更新用户的位置(例如在Apple
Map应用程序中)。

我试过了,但是什么也没发生:

import MapKit
import CoreLocation

class MapView : UIViewController, CLLocationManagerDelegate {

    @IBOutlet weak var map: MKMapView!
    var locationManager: CLLocationManager!

    override func viewDidLoad() {
        super.viewDidLoad()

        if (CLLocationManager.locationServicesEnabled())
        {
            locationManager = CLLocationManager()
            locationManager.delegate = self
            locationManager.desiredAccuracy = kCLLocationAccuracyBest
            locationManager.requestAlwaysAuthorization()
            locationManager.startUpdatingLocation()
        }
    }
}

请你帮助我好吗?


问题答案:

您必须重写CLLocationManager.didUpdateLocations(CLLocationManagerDelegate的一部分)才能在位置管理器检索当前位置时得到通知:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last{
        let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
        let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
        self.map.setRegion(region, animated: true)
    }
}

注意:如果目标是iOS
8或更高版本,则必须在Info.plist中包括NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription键,才能使定位服务正常工作。



 类似资料:
  • 问题内容: 我正在开发一个包含3个活动的android应用程序,其中一个是map。我正在使用谷歌地图 我想要的是: 当用户打开活动(地图)时,它将向用户显示她的位置而不是坐标。 用户还应该能够通过使用大头针定位(固定)任何地方,而我的应用程序必须将此大头针的坐标存储在变量中,以便以后使用。 这是CustomPinpoint类 问题答案: 我已经实现了您想要的相同的东西。我为您提供示例代码。在这种情

  • 问题内容: 最后,我成功显示了地图,现在,我想显示我的当前位置,我尝试使用这些代码,但是当我单击右上角的我的位置按钮时,它不起作用。 AndroidManifest.xml MapsActivity.java 问题答案: 将此代码用于当前位置:

  • 问题内容: 目前,每35秒更改一次位置并移动10米的距离后,我就会在上绘制一个。 因此,我在位置更改(移动35秒和10米)后立即实现了此功能,我正在绘制。 问题陈述:- 。有时我的应用程序被挂起?可能是因为我的代码在下面的编写方式中效率不高? 基本上,我只需要在每移动35秒和10米的距离后在当前位置绘制一个圆圈。 我的代码有问题吗?任何想法,例如我应该如何进一步改善它,以使其顺利运行。 这是我在M

  • 在…上https://play.nativescript.org/ 是一个名为的组件,在HelloWorld.vue中使用时,它如下所示,但在我家附近移动并等待或再次按下按钮时,位置不会更改/更新。我将和设置为1米,但也尝试使用。可能是什么问题?

  • 本文向大家介绍如何使用HTML5地理位置和Google Maps显示当前位置?,包括了如何使用HTML5地理位置和Google Maps显示当前位置?的使用技巧和注意事项,需要的朋友参考一下 HTML5 Geolocation API使您可以与自己喜欢的网站共享位置。Javascript可以捕获您的纬度和经度,并且可以发送到后端Web服务器,并可以进行精美的位置感知操作,例如查找本地商家或在映射上

  • 问题内容: 我有这些方法可以在MKMapView之间添加路由。我都有有效的pickUpDistanceLocation和dropOffDistanceLocation 这是在地图中添加路线叠加层的方法 我收到此错误,因为响应返回错误:400 打印错误时显示为 可选(“操作无法完成。(NSURLErrorDomain错误-1011。)”) 问题答案: 实际上,源变量和目标变量都为nil。因此,我从s