妙用 Xcode 修改 iPhone 的当前定位位置

栏目: 编程工具 · IOS · 发布时间: 6年前

内容简介:iPhone 可以利用 GPS 来精确定位所处的位置,借助得到的位置结果可以应用在众多地图类、社交类等 app 中。为了 app 的开发和测试或者一些其他目的,有时需要改变当前的定位位置来测试一些结果。本文的主题就是在不需要越狱的前提下,使用 iOS 开发最常用的 Xcode 工具来临时修改 iPhone 的当前定位位置。地图中的每一个点都有一个坐标,可以用经度(表东西方向)和纬度(表南北方向)来表示。针对于这个坐标,我们常见的有三种坐标系标准:要想把定位位置改成我们想要的位置,首先要找到那个位置的经度+

iPhone 可以利用 GPS 来精确定位所处的位置,借助得到的位置结果可以应用在众多地图类、社交类等 app 中。为了 app 的开发和测试或者一些其他目的,有时需要改变当前的定位位置来测试一些结果。本文的主题就是在不需要越狱的前提下,使用 iOS 开发最常用的 Xcode 工具来临时修改 iPhone 的当前定位位置。

背景

地图中的每一个点都有一个坐标,可以用经度(表东西方向)和纬度(表南北方向)来表示。针对于这个坐标,我们常见的有三种坐标系标准:

  • WGS-84 :即在 1984 年定义的世界大地测量系统(World Geodetic System, WGS),也是被广泛采用的坐标系标准;
  • GCJ-02 :一种基于 WGS-84 制定的大地测量系统 ,由中国国测局制定。此坐标系所采用的混淆算法会在经纬度中加入看似随机的偏移,号称可以促进国家安全 。目前该算法已经通过多种语言形式实现了向 WGS-84 坐标的转换。高德地图、Google Map 中国内地部分的坐标采用了此标准。
  • BD-09 :百度在 GCJ-02 的基础上多增加了一次变换,号称“有助保护用户隐私” 。目前也已被反向转换。百度地图采用了此标准。

要想把定位位置改成我们想要的位置,首先要找到那个位置的经度+维度坐标,确定其使用的坐标标准,利用 工具 将其转换为 WGS-84 标准,获取到在 WGS-84 标准下的准确坐标。

准备

以下以「上海中心」这个地理位置坐标作为最终目标为例说明:

  • 1.获取 GCJ-02 标准的地理位置坐标:高德地图 或者 Google 地图 中找到上海中心的经纬度坐标(GCJ-02 标准)为 121.505385,31.233526 ,如下图:
  • 妙用 Xcode 修改 iPhone 的当前定位位置

    高德地图

  • 妙用 Xcode 修改 iPhone 的当前定位位置

    Google Map

  • 2.获取 WGS-84 标准的地理位置坐标: 利用 转换工具 将获取到的 GCJ-02 标准的坐标转换成 WGS-84 标准的坐标,如下图,最终获取到的 WGS-84 坐标为 121.50097295,31.23555959

妙用 Xcode 修改 iPhone 的当前定位位置

  • 3.配置一个 GPX 格式的文件: 这个文件稍后会导入到 Xcode 项目中使用,文件内容如下,注意将其中的 latlon 改成刚刚你获取到的 WGS-84 坐标。
<?xml version="1.0" encoding="UTF-8" ?>
<gpx version="1.1"
    creator="GMapToGPX 6.4j - http://www.elsewhere.org/GMapToGPX/"
    xmlns="http://www.topografix.com/GPX/1/1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
    <wpt lat="31.23555959" lon="121.50097295">
    </wpt>
</gpx>

操作

  • 1.在 Xcode 中新建一个项目,并将刚刚创建的 gpx 格式文件拖入到项目中,如下图:

妙用 Xcode 修改 iPhone 的当前定位位置

  • 2.打开 Xcode 项目的「Edit Scheme…」设置窗口,在「Run-Option-Core Location」中选中「Allow Location Simulation」,并在「Default Location」选择刚刚添加的 gpx 文件(Default Location 中默认包含了一些全世界各个国家和地区的位置,这些位置的周围一般都有一家 Apple Store),如下图:

妙用 Xcode 修改 iPhone 的当前定位位置

  • 3.在 iPhone 真机上编译并运行此 app,此时手机的定位位置就已经变成了「上海中心」,可以在地图 app 或者社交 app 中查看确认。

妙用 Xcode 修改 iPhone 的当前定位位置

  • 4.只要不在 Xcode 中停止运行 app,这个模拟的地理位置就可以保持一段时间,在 Xcode 中停止运行 app 或者重启手机都会恢复成真实的地理位置。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

标签: xcode

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

expert one-on-one J2EE Development without EJB 中文版

expert one-on-one J2EE Development without EJB 中文版

[美] Rod Johnson、Juergen Hoeller / JavaEye / 电子工业出版社 / 2005-9 / 59.80元

乍一看这本书的名字,Expert one on one J2EE development without EJB并没有给人带来太冲击。毕竟关于J2EE的书太多了,而without EJB看上去有点象是故意挑衅EJB的感觉。一本J2EE的书怎么可能会给人带来信念或思维的冲击呢?但是它做到了,它不仅使自己变成了不朽的经典,也使Rod Johnson成为了我最近一年的新偶像。           ......一起来看看 《expert one-on-one J2EE Development without EJB 中文版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具