前言


最近在做一个桌面应用,大致就是对图片备份分类等动能,iphone如果打开GPS的话,拍摄的照片时是可以显示地理位置的,我也想做一个同样的功能,做的过程中有几个关键点,这里记录一下

一、关于GPS


实际操作:
如果拿到了照片的GPS直接去腾讯、高德、百度地图中反查的话,地理位置偏差大概会有几百米,这肯定是不正常的,手机的GPS精度比这个精准多了,所以要找找到定位偏差的根本,是啥呢?

原因:
关于坐标,手机的GPS坐标是WGS84,这个标准谷歌地球和非中国的谷歌地图在用(谷歌中国不是),但是中国的地图都是用的GCJ-02(火星坐标系,在标准上偏差几百米),腾旭,高德等中国的地图都是用的这个格式,在WGS84基础上加密来的,BD09 百度地图使用的坐标,在GCJ-02基础上二次加密来的

结论:
原来是标准不一样的问题,那我首先把获得的GPS转成标准为GCJ-02的坐标,然后用这个坐标反查地理位置,那我的问题又来了,如下

二、关于地理位置


iphone图片库根据地理位置和时间分类这个设计体验非常好,那我既然获得了GPS,我也想获得位置,可是我这个位置是需要 连网 的啊,需要调用腾讯或者高德等API的,那如果我一次上传100张照片我都要获取位置,那就得请求100次API,所以我想有没有本地获取位置的方法,而且我好像发现在iphone中拍完照片就会有位置信息的吧,所以我做了一个测试,看看iphone是怎么实现获取位置信息的

三、实验


目的:
我的目的是探明iphone拍照片获取地理位置是否需要联网

试验
关闭网络 ,或者开启飞行模式,拍张照片,然后去图库里看,是否记录了位置信息,如图

关闭网络
关闭网络

而且开启网络后,地理信息会附加上


开启网络 ,操作同上,如图

开启网络
开启网络

四、结论

iphone拍照获取街道地址这一步的操作是请求是靠连接网络获取的
ps:iphone的地图源是高德和tomtom