iOS 火星坐标相关整理及解决方案汇总
iOS之火星地图与地球坐标(MapKit&CoreLocation)
(2013-01-15 23:43:02)
标签:
iosmapkitcorelocation火星地图火星坐标 |
分类: iOS |
条件:
iOS 火星坐标相关整理及解决方案汇总
这几天在处理定位相关的代码,彻彻底底的被火星坐标恶心到了。
恶心列表
- 从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错的!
- 从 CLLocationManager 取出来的经纬度去 Google Maps API 做逆地址解析,当然是错的!
- 从 MKMapView 取出来的经纬度去 Google Maps API 做
逆地址解析
终于对了。去百度地图API做逆地址解析
,依旧是错的! - 从上面两处取的经纬度放到百度地图上显示都是错的!错的!的!
当时我还不知道火星坐标、XX坐标,大骂苹果SB(我错了)…… 如果你碰到上述情况,接着往下看。
名词解释:
地球坐标 (WGS84)
- 国际标准,GPS标准从 GPS 设备中取出的原始数据是就是这个
- 国际地图提供商一般使用的也是这个
火星坐标 (GCJ-02)
- 中国标准,行货 GPS 设备取出的最终数据是这个
- 国家龟腚:
国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。
百度坐标 (BD-09)
- 百度标准,百度 SDK,地图,Geocoding 用的都是这个。
开发时所面临的现状
获取经纬度(GPS)
- 火星坐标
- MKMapView
- 地球坐标
- CLLocationManager
显示经纬度(地图)
- 火星坐标
- iOS 地图
- Gogole地图
- 搜搜、阿里云、高德地图
- 地球坐标
- Google 卫星地图(国外地图应该都是……)
- 百度坐标
- 百度地图
推荐的解决方案:
- 既然是在国内,存储一律用火星坐标,这样在使用国内地图显示时最方便(用百度地图显示时可以一次转换取得)
- CLLocationManager 拿到的 CLLocation 转为火星坐标,MKMapView 不用处理
- 使用地图 API 进行 地址解析/逆地址解析(Geocoding) 时注意相应使用相应地图商的坐标系
- 部分地图商支持多个坐标系输入,如高德支持地球、火星坐标(这个一直有变动,具体只能参考厂商最新文档了)
附上相应的转换算法
iOS 平台的转换算法的已经封装了一个 Category,在这里 CLLocation+Sino 。
地图坐标 to 火星坐标
- 地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法 (推荐!)
- 地图 API: 百度的 高德的
火星坐标 to 地图坐标
- 数据库查表转换 中国区 GPS坐标 修正(适用于google地图)
- iOS 私有 API (已不可用)
火星坐标 vs 百度坐标
- 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法
总结
- 火星坐标是天朝的新发明,至于火星坐标能补呢功能保证国家安全,我对此深深怀疑:至少用穷举法精度达到10米内是很容易的
- GPS厂商和地图厂商都需要加偏、纠偏算法,买算法是要付钱的 , 所以你懂的
- 火星坐标已经挺有天朝特色了:全民都处以
虚幻坐标系
之下,而百度又极尽展现了天朝厂商特色,为了垄断不折手段。我朝威武! - iOS SDK 的做法还是比较合理的,毕竟他是一个国际化的平台。CLLocationManager 提供地球坐标,这样显示国外地图商的地图服务没问题,碰到火星地图,转一下就好,逆之则没那么容易。而 MKMapView 则与 iOS 地图展示相关,国内地图必须使用火星坐标
- 本人只是想用户使用 app 时能简简单单定位准确,而不是飞檐走壁狐死首丘。本文只做技术讨论,不敢侵犯任何个人、团体、政党、国家、星球权利,任何XXX对此文不满,请留言,我立刻删之
links
- 国内各地图API坐标系统比较
- 火星坐标系问题在iOS下的修正
- 借助百度地图转换火星坐标的研究
updates
- 2013.05.01 『部分地图商支持多个坐标系输入』
iOS 火星坐标相关整理及解决方案汇总相关推荐
- iOS上架小课堂:被拒解决方案汇总【2.1蓝牙权限、3.1.1微信小程序、5.1.1权限使用说明、 境外IP访问权限等】
文章目录 引言 I 3.1.1微信小程序 1.1 问题分析 1.2 解决步骤 1.3 去掉微信小程序推广的相关功能 II 蓝牙权限(2.1)被拒绝上架的案例 2.1 拒绝原因 2.2 解决方案 III ...
- iOS时间转换相关整理(附送试用期逻辑处理)
对于时间转换我们并不陌生,只是不同的后台风格不同,我们请求回来的时间格式也不同! 现整理时间相关点: //从1970年开始到现在经过了多少秒-(NSString *)getTimeSp{NSStrin ...
- ios 解决有关火星坐标的问题
CLLocationManager 定位获取CLLocation 是地球坐标,而MKMapView 获取的是天朝火星坐标,这就导致了使用定位的时候,显示用户的蓝点和当前定位信息偏差(因为蓝点是调用了M ...
- IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法
为什么80%的码农都做不了架构师?>>> IOS7 WGS-84转GCJ-02(火星坐标) CLLocationManager类可以实时的获得我们位置的经纬度,并且可以通过经纬 ...
- IOS 地球坐标-火星坐标-百度坐标 转换
如果你正需要这样的工具,保证拿过去就能用 如果你还不知道这是什么工具,我保证以后的iOS开发中肯定会用 如果你是iOS大牛,期待您能指点一下 ^_^ 好了,废话不多说了.上干货 坐标系介绍 首先介绍一 ...
- iOS端矢量图解决方案汇总
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者 | 小猪 来源 | 小猪的博客 https: ...
- 微信小程序image组件开发程序以及相关图片问题参考资料汇总
微信小程序image组件开发程序以及相关图片问题参考资料汇总,希望对大家小程序开发能有一定的参考和借鉴价值.以下汇总主要涉及到微信小程序image组件有关资源路径.缩放和剪裁模式等进行的探讨,无论是对 ...
- Android WebView常见问题及解决方案汇总
转载,请声明出处: 时之沙:http://blog.csdn.net/t12x3456 Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示 ...
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转
为什么写这个模块 随着移动互联网的兴起,几乎每一个app都会去收集用户位置,如果恰好你在处理与地理定位相关的代码,并且不了解地理坐标系的话,肯定要被我大天朝各种坐标系搞晕.写这个模块的目的也是因为项目 ...
最新文章
- DB2 9 使用拓荒(733 检讨)认证指南,第 2 部分: DB2 数据操作(6)
- javascript实现的图数据结构的广度优先 搜索(Breadth-First Search,BFS)和深度优先搜索(Depth-First Search,DFS)...
- 整理一下linux系统expand 命令
- maven 插件的应用
- Python是否具有字符串“包含”子字符串方法?
- 基于PYNQ-Z2开发板实现矩阵乘法加速详细流程
- 华为手机卡在升级界面_你的华为手机变卡了,1分钟调整这3个功能,让手机再战3年...
- LookAheadEnumerator:在解析器中实现回溯
- webstorm注释写出的提示
- 8种开源情报(OSINT)工具简介
- 2020-05-26
- 腾讯云服务器入门使用流程 新手必看教程
- 使用Viewpager Indicator实现图片无限轮播
- iOS 启动优化和安装包瘦身
- 一块宝藏存储芯片【SD NAND】
- Android之WebView的使用与简单浏览器
- php开源记账,php记账
- 5张图带你了解Pulsar的存储引擎BookKeeper
- 计算机网络学习——王道教材书(持续更新)
- gitlab中国官方网站
热门文章
- 车用计算机电路板,使用车充、LED头灯电路板制作1.5V电源模块(可代替1号电池)...
- java毕业设计校园招聘系统设计mybatis+源码+调试部署+系统+数据库+lw
- 可以免费批量Excel转PDF的在线转换工具
- Chrome+selenium+headless报错无法加载插件
- Apache Druid安装部署手册
- 湖北省武汉汽车上牌篇2008年完整上牌程序供参考
- 最大规模开源说话人识别语料集——VoxCeleb
- web学习一——We简介、Tomcat、HTTP协议
- MIPI 系列之 D-PHY
- Word标准简单格式