swift学习笔记(七)(定位)

swift开发笔记18 - 获取当前位置坐标和地址 获取当前位置坐标和地址的简单代码 阅读详情


代码如下:


import UIKit

import CoreLocation


class ViewController: UIViewController, CLLocationManagerDelegate {


    @IBOutlet weak var locationLabel: UILabel!  // sb里的定位显示label

    

    var locationManager: CLLocationManager!

    

    override func viewDidLoad() {

        super.viewDidLoad()

    }

    

    override func preferredStatusBarStyle() -> UIStatusBarStyle {

        return UIStatusBarStyle.LightContent

    }

    

    @IBAction func myLocationButtonDidTouch(sender: AnyObject) { // sb里的定位触发按钮

        

        locationManager = CLLocationManager()

        locationManager.delegate = self

        locationManager.desiredAccuracy = kCLLocationAccuracyBest

        locationManager.requestAlwaysAuthorization()

        locationManager.startUpdatingLocation()

        

    }


    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {

        

      self.locationLabel.text = "Error while updating location " + error.localizedDescription

        

    }

    

    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

        CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: {(placemarks, error)->Void in

            

            if (error != nil) {

               self.locationLabel.text = "Reverse geocoder failed with error" + error!.localizedDescription

                return

            }

            

            if placemarks!.count > 0 {

                let pm = placemarks![0] 

                self.displayLocationInfo(pm)

            } else {

               self.locationLabel.text = "Problem with the data received from geocoder"

            }

        })

    }

    

    func displayLocationInfo(placemark: CLPlacemark?) {

        if let containsPlacemark = placemark {

            //stop updating location to save battery life

            locationManager.stopUpdatingLocation()

            

            let locality = (containsPlacemark.locality != nil) ? containsPlacemark.locality : ""

            let postalCode = (containsPlacemark.postalCode != nil) ? containsPlacemark.postalCode : ""

            let administrativeArea = (containsPlacemark.administrativeArea != nil) ? containsPlacemark.administrativeArea : ""

            let country = (containsPlacemark.country != nil) ? containsPlacemark.country : ""

            

            self.locationLabel.text = locality! +  postalCode! +  administrativeArea! +  country!

        }

        

    }


}


1.定位要用到coreLocation.framework, 记得在info.plist中添加键值如下:
NSLocationAlwaysUsageDescription  String    where are you
NSLocationWhenInUseUsageDescription  String   Allow to use location and can send it to me
这样就可以编写定位代码并定位了,这样会有是否允许定位的提示



swift 地图定位(一) import UIKit import CoreLocation class ViewController: UIViewController { lazy var locationM: CLLocationManager = { let locationM = CLLocationManager() locationM.delegate = self 阅读详情

相关推荐

swift 地图定位(七)地理编码与反地理编码

需要联网,笔者在真机环境下测试OK (swift3)

targetcloud 2800

swift 之使用系统的地图

引入头文件:import MapKitimport CoreLocation添加代理CLLocationManagerDelegate===========定位(一次定位、持续定位、使用期间定位、后台定位)=======    func mapLocation(){       locationManager=CLLocationManager.init()        //在使用期间发定位请求...

代码解释生活 851

swift地图定位(十九)集成百度地图

ViewController.swift // // ViewController.swift // baidumapfirsttest // // Created by targetcloud on 2016/11/16. // Copyright © 2016年 targetcloud. All rights reserved. //准备: //下载包 //http://wiki.

targetcloud 2216

Swift 获取定位地址信息

import CoreLocation typealias MKPositioningClosure = (String) -> () class LocationManager: NSObject { public static let shared = LocationManager() var clousre : MKPositioningCl...

Mackellen的专栏 4102

iOS应用中Swift实现定位功能的全解析

基站定位是一种基于移动通信基站信号的定位技术。这种方法不需要用户的设备具有GPS功能,而是通过分析手机信号在不同基站之间的传输特性,结合移动通信网络中的信号塔位置信息来实现定位。基站定位通常由运营商提供,或者使用第三方定位服务提供商的数据。定位的基本原理是通过手机与周围基站的信号强度差异,使用三角测量法或其他复杂的算法(如多边测量法)估算手机的位置。因为不同基站间的信号在传播过程中会有衰减,而手机到各个基站的距离不同,导致信号强度的差异,这些信息可以用来进行定位计算。

weixin_36474966的博客 1140

Vivado里LDPC IP核怎么配?手把手教你从6144bit数据到完整参数设置

本文详细介绍了在Vivado中配置LDPC IP核的完整流程,从6144bit数据的参数计算到实际IP核设置。通过分析基本图选择、扩展因子计算和移位参数确定等关键步骤,帮助工程师高效完成LDPC编译码的硬件实现,并提供了时序控制、仿真验证和性能优化的实用技巧。

weixin_30352645的博客 518

SWIFT电文学习笔记

SWIFT电文学习笔记报文类型用户报文系统报文(System Message)服务报文(Service Message)错误码(Error Code)SWIFT电文结构(1)报头Header Block(2)正文Text Block(3)报尾Tail Block报文收发示例电文格式分类报文功能解释Swift MT707Swift MT760(信汇760)SWIFT MT799/RWASWIFT MT798SWIFT MT999SWIFT 编码格式SWIFT字符表示方式SWIFT BIC是否启用SWIFT M

weixin_46596227的博客 1万+

从稳压管到LDO芯片:一张图看懂线性电源的‘内卷’进化史

本文追溯了从稳压管到LDO芯片的线性电源技术进化历程,详细解析了各阶段的技术突破与局限。重点探讨了现代LDO在超低功耗、高精度控制等方面的创新,并提供了实战选型的黄金法则,帮助工程师在电子设备小型化与低功耗化趋势中做出最优选择。

weixin_42525551的博客 205

Swift学习笔记&SwiftUI初尝试

都为 false ,其他的则都为 true。true 取反使用。

Vinemoon的博客 2284

构造地貌研究入门:手把手教你用ArcGIS插件CalHypso分析流域地貌形态

本文详细介绍了如何使用ArcGIS插件CalHypso进行流域地貌形态分析,包括工具安装、数据预处理、HI曲线生成及结果解读等关键步骤。通过实战操作,帮助读者掌握面积高程积分(HI)曲线的应用技巧,为构造地貌研究提供量化工具。

weixin_33704234的博客 105

Pixhawk固定翼飞行控制实战:L1与TECS算法详解(附代码解析)

本文深入解析了Pixhawk飞控在固定翼无人机中的核心控制算法:L1导航与TECS总能量控制。通过剖析算法原理、代码实现与实战调参,帮助开发者解决航线跟踪振荡、高度速度不稳定等常见问题,实现精准稳定的自主飞行。

wine的专栏 744

Swift 6 学习笔记(一)A Swift Tour

这个坑是新开的一个有关 swift 6 的学习笔记系列,因为我近期需要在 Apple Vision OS 上进行具身遥操作应用的开发,需要用到 swift 和 swiftUI 这两个开发语言,在此之前我完全没有接触过 swift,也没有在 iOS 平台上进行过开发,因此这个系列博客是我个人的一个纯零基础笔记,和其他的几个系列博客相比,可能中间存在一些错误。

nenchoumi3119的博客 1150

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7200

IOS swift开发——获取设备定位信息

作为GIS开发人员,学习任何Android或者swift开发语言,可能第一时间想到的就是获取设备的定位信息。这里就来简述一下,我使用swift获取IOS定位信息的过程。 目录添加后台定位能力模拟器定位模拟设置添加获取定位权限时的描述代码实现定位定位效果 添加后台定位能力 在项目配置里Singing&Capabilities中点击+Capability,在弹出的窗口中选择Background Modes。选择后,下面会出现一个Background Modes菜单,然后勾选Location upda.

做GIS梦的人 4345

连续相位调制通信调制方法的载波同步和定时同步研究及MATLAB仿真

本文将探讨CPM调制方法中的载波同步和定时同步问题,并提供MATLAB仿真源代码。本文讨论了连续相位调制通信中的载波同步和定时同步问题,并提供了相应的MATLAB仿真源代码。通过适当的载波同步和定时同步方法,可以实现对CPM信号的准确解调。希望本文对您理解连续相位调制通信调制方法的载波同步和定时同步问题有所帮助,同时也为您提供了一些MATLAB仿真实现的思路和示例代码。在CPM系统中,载波同步的主要任务是估计接收信号的载波频率偏移和相位偏移。在CPM系统中,常用的定时同步方法是基于自相关函数的峰值检测。

2301_79331230的博客 692

PyQt 随笔:信号与槽的两种使用方法:@pyqtSlot 和 connect

在 PyQt 中,信号与槽是实现事件驱动的一种重要机制。通过信号与槽的连接,可以实现对象之间的通信,例如在用户界面中响应按钮点击事件或者数据的变化等。PyQt 提供了两种主要的方法来创建信号与槽的连接:@pyqtSlot 装饰器和 connect 方法。本文将详细介绍这两种方法,并提供相应的源代码示例。在上面的示例中,我们定义了一个名为。

QasdCpp的博客 763

Swift学习笔记

在第一行代码中,通过使用命名型类型 Array创建了一个字符串类型的数组,其中 SomeType 是这个数组中唯一允许存在的数据类型。在第二行代码中,使用像 SomeType[]这样的简单语法创建了一个类型为浮点数的数组floatArray。前面两种方法都是通过显式的类型标注创建指定类型的数组。在第三行代码中,通过给常量设置默认值,从而由Swif 对其类型做出推断。因为所有值都是整数类型,所以数组的类型被推些为整型数组。

liang060602的博客 1626

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Swift学习笔记2

Swift数组使用有序列表存储同一类型的多个值,相同的值可以多次出现在一个数组的不同位置数组中元素类型不同会报错将数组赋值给一个变量,则创建的集合就可以修改。

2401_87573207的博客 1940

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

iOS使用swift制作定位的pod库

  很早的时候就学习swift了,但是一直没有机会去实践,最近swift版本逐渐的稳定下来了,而且swift的语言写起来更加的简洁,加上年前已经用swift写了一个工具app,最近在做项目优化,打算把定位功能封装成一个pod库,由于功能简单,决定用swift语言来写。里面坑点仍然不少,这里做一下分享, 希望大家可以避开这些坑。 地图定位JKLocationMananger简介   这个地图pod库...

878

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

swift 定位封装一句话使用

swift 定位的封装,使用一句话方便简单。闭包返回信息:定位Location+反编译地址信息+errorgit地址:https://github.com/RainManGO/LocationManager使用代码: LocationManager.shareManager.creatLocationManager().startLocation { (location, adress, erro...

星宇大前端 1472

Swift学习笔记 - 目录

Swift学习笔记 根据《Swift编程权威指南》和 Swift官方文档 学习整理的Swift学习笔记,持续更新,中间有什么错误,欢迎大家留言讨论。 本篇为系列总目录。 总体目录 一、类型、常量和变量 二、流程控制 三、容器(集合) 四、函数 五、闭包 六、枚举 七、结构体、类和方法 八、属性 九、下标 十、继承 十一、初始化 … 官方文档 swift官方文档 ...

weixin_41743200的博客 330

SWIFT(魔搭社区) 与 ModelScope的定位区别与联系

以下是与。

学亮编程手记 1060

swift 地图定位(四)

import UIKit import CoreLocation class ViewController: UIViewController { var lastLoc: CLLocation? lazy var locationM: CLLocationManager = { let locationM = CLLocationManager()

targetcloud 874

Swift学习笔记七:闭包

闭包可以 捕获 和存储其所在上下文中任意常量和变量的引用。 Swift 会为您管理在 捕获 过程中涉及到的内存操作。 在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一: 1. 全局函数是一个有名字但不会捕获任何值的闭包 2. 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 3. 闭包表达式是一个可以捕获其上下文中变量或常量值的没有名字的闭包 一、闭

1572

Swift 学习笔记

iOS开发学习中的简单记录

酉酉的博客 1506
上一篇: 项目开源的步骤
下一篇: 如何在Git中撤销任何操作
Magical_master
博客等级 码龄11年 8粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值