在地图上显示用户位置 SwiftUI

2024-01-08

我正在尝试加载地图并在用户位置上显示初始位置,并使用 SwiftUI 在地图上显示用户的位置。我不知道如何在 SwiftUI 中做到这一点。

我尝试将“view.showsUserLocation = true”放入 updateUIView 函数中,但它不起作用。

import SwiftUI
import MapKit
struct MapView : UIViewRepresentable {
    func makeUIView(context: Context) -> MKMapView {
        MKMapView(frame: .zero)
    }

    func updateUIView(_ view: MKMapView, context: Context) {
        view.showsUserLocation = true
        let coordinate = CLLocationCoordinate2D(
            latitude: 34.011286, longitude: -116.166868)
        let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)

        let region = MKCoordinateRegion(center: view.userLocation.location?.coordinate ?? coordinate, span: span)
        view.setRegion(region, animated: true)
    }
}

当我尝试打印它时,该位置为零。


Add key Privacy - Location When In Use Usage Description和描述在Info.plist

然后尝试更新以下功能:

func updateUIView(_ view: MKMapView, context: Context) {

    view.showsUserLocation = true

    // Ask for Authorisation from the User.
    self.locationManager.requestAlwaysAuthorization()

    // For use in foreground
    self.locationManager.requestWhenInUseAuthorization()

    if CLLocationManager.locationServicesEnabled() {
        //        self.locationManager.delegate = self
         self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
         self.locationManager.startUpdatingLocation()

        //Temporary fix: App crashes as it may execute before getting users current location
        //Try to run on device without DispatchQueue

        DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
            let locValue:CLLocationCoordinate2D = self.locationManager.location!.coordinate
            print("CURRENT LOCATION = \(locValue.latitude) \(locValue.longitude)")

            let coordinate = CLLocationCoordinate2D(
                latitude: locValue.latitude, longitude: locValue.longitude)
            let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
            let region = MKCoordinateRegion(center: coordinate, span: span)
            view.setRegion(region, animated: true)

        })
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在地图上显示用户位置 SwiftUI 的相关文章

随机推荐

  • 批处理文件删除早于指定日期的文件[重复]

    这个问题在这里已经有答案了 如何创建批处理文件来删除早于指定日期的文件 这似乎不起作用 DELOLD BAT echo off SET OLDERTHAN 1 IF NOT DEFINED OLDERTHAN GOTO SYNTAX for
  • 如何防止多个 Toast 重叠

    我一直在使用一个常见的 myToast 我使用 myToast cancel 在发出新的 toast 之前 对于 Android v2 3 及更早版本 这非常有效 当需要发送新的 Toast 时 如果旧的 Toast 仍在屏幕上 则会取消
  • SQL Server 2008 R2:从视图中包含的表中删除重复行

    创建表dup1 CREATE TABLE dup1 cola VARCHAR 10 colb VARCHAR 10 插入记录 INSERT INTO dup1 VALUES 1 2 INSERT INTO dup1 VALUES 1 2 I
  • Delphi XE2:禁用组件上的 vcl 样式

    我正在尝试按照有关禁用表单上控件上的颜色的示例进行操作 TStyleManager Engine RegisterStyleHook ClrMeans TwwDBComboDLG TEditStyleHook 但在注册或取消注册第 3 方控
  • C++ find 返回字符串变量 text 中的最后一个单词。字符串 getFirstWord(文本)

    我试图转到字符串的末尾 返回直到最后一个空格 然后前进直到单词的末尾并将该单词存储在空字符串中 不允许使用数组或指针 string getLastWord string text string lastword int last text
  • 检测重叠周期的算法[重复]

    这个问题在这里已经有答案了 我必须检测两个时间段是否重叠 每个期间都有开始日期和结束日期 我需要检测我的第一个时间段 A 是否与另一个时间段 B C 重叠 就我而言 如果 B 的开头等于 A 的结尾 则它们不重叠 反之亦然 我发现了以下案例
  • 对话框内的引导箱对话框

    我最近被分配到一个使用 bootbox 的项目 我当前的问题之一是在打开一个对话框后打开另一个对话框 问题是打开第二个对话框后背景阴影不会覆盖第一个对话框 有没有办法打开第二个对话框覆盖第一个对话框 EDIT function Confir
  • 有浮动工具提示的 Flot 示例吗?

    我目前正在研究一个Flot http code google com p flot 图形 即API http flot googlecode com svn trunk API txt尽管高级使用的示例没有得到广泛记录 但总体而言似乎非常强
  • 如何将图像放入 AlertDialog 中?安卓

    我不知道如何将图像放入 AlertDialog 中 我有这段代码 但我认为这是不可能的 AlertDialog Builder alert new AlertDialog Builder MessageDemo this ImageView
  • 为新用户授予默认权限或默认组

    默认行为似乎是新用户没有权限 也没有组 然而 我不想手动授予每个新用户基本权限 并且我假设他们不想等我这样做 我应该如何为新用户分配默认权限 已经提出了一些类似的问题 但对于一般情况没有明确的答案 Django默认用户权限 https st
  • @layout 引用的自定义 xml 属性

    我想用自己的 xml 属性创建一个自定义视图 我想指定一个标题布局 该布局将在我的自定义 xml 视图中膨胀 如下所示
  • plotly 3d 表面 - 将立方体更改为矩形空间

    我想要一个不在立方体中的 3D 图 因为我的 z 数据比 x 和 y 轴的比例小 10 倍 如何设置才能使 3D 绘图不是立方体 而是矩形 我希望 x y z 轴也具有相同的比例 也就是说 在此示例中 x 和 y 的范围是从 0 到 100
  • 如何以编程方式获取 aws ebs 定价?

    是否可以以编程方式下载 aws ebs 定价 我能够下载整个 AWS 服务索引文件 但没有看到列出的 Amazon EBS 我下载了 AmazonEC2 定价信息 它有 PricePerUnit 对于 EC2 实例来说意味着 但没有专门显示
  • pickle pandas DataFrame 的最快方法是什么?

    使用 Pandas 内置方法或pickle dump 标准的pickle方法如下所示 pickle dump my dataframe open test pickle p wb Pandas 内置方法如下所示 my dataframe t
  • 如何修改预构建的 Python 安装以在另一个目录中工作?

    对于预构建的自定义 Python 发行版的项目 我需要能够使用以下命令从源代码编译包pip 在已安装的环境中 最终产品的两次安装的文件系统结构可能如下所示 opt my program v1 some files custom python
  • Perl 程序用空格替换制表符

    我想编写一个 Perl 单行代码 用空格替换当前目录中一批文本文件中的所有制表符 t 而不影响可见间距 谁能告诉我如何做到这一点 这是在FAQ http perldoc perl org perlfaq4 html How do I exp
  • 是否可以创建动态嵌入功能?

    是否可以在ActionScript3中创建动态嵌入功能 例如像这样 public function embedImage path String Bitmap Embed source path mimeType image png var
  • .NET 相当于旧的 vb left(string, length) 函数

    作为一名非 NET 程序员 我正在寻找旧 Visual Basic 函数的 NET 等效项left string length 它很懒 因为它适用于任何长度的字符串 正如预期的那样 left foobar 3 foo 同时 最有帮助的是 l
  • 创建一个大的位域?

    我想在 JavaScript 中创建一个大的位字段 它将有效地表示多维标记数组 使用索引跳转到物理 1D 结构中的各个维度 我正在考虑如何将字符串用作位 而不是一堆数字 这样我就可以首先分配适当长度的字符串 数据类型 Unicode 和转换
  • 在地图上显示用户位置 SwiftUI

    我正在尝试加载地图并在用户位置上显示初始位置 并使用 SwiftUI 在地图上显示用户的位置 我不知道如何在 SwiftUI 中做到这一点 我尝试将 view showsUserLocation true 放入 updateUIView 函