h5 geolocation 的那些事~

在讲h5 的geolocation API之前,让我们先了解一下当前国内地理坐标系现状

当前国内地理坐标系

  1. 国际坐标系:国际标准,国际地图提供商使用的坐标系
  2. 火星坐标系:国内标准,国际坐标系通过GCJ-02算法(非线性)加密后得到的坐标系
  3. 百度坐标系:百度对火星坐标系进行二次加密得到的坐标系(隐约感觉到ie的身影)

<秦始皇都快要忍不住爬起来一统天下(坐标系)了>

让我们在同一个地点,看看三种坐标有什么地理位置的差别:

// 百度坐标系 火星坐标系
console.log(geolib.getDistance(
    {latitude:113.939446, longitude: 22.546171},
    {latitude: 113.932777, longitude: 22.540639}
), '百度坐标系 火星坐标系')


// 百度坐标系 国际坐标系
console.log(geolib.getDistance(
    {latitude:113.939446, longitude: 22.546171},
    {latitude: 113.9279875, longitude: 22.5436215}
), '百度坐标系 国际坐标系')

// 火星坐标系 国际坐标系
console.log(geolib.getDistance(
    {latitude: 113.932777, longitude: 22.540639},
    {latitude: 113.9279875, longitude: 22.5436215}
), '火星坐标系 国际坐标系')

//输出  (单位:m)
785 '百度坐标系 火星坐标系'
1283 '百度坐标系 国际坐标系'
551 '火星坐标系 国际坐标系'

可以看出同一地点,采用不同地理坐标系的偏差。因为采用的是非线性算法进行加密的,所以不同地区,偏差程度不一样,详细可自行进行查阅资料,或者自行进行测试。

那么从h5 的geolocation 获取的坐标系又是什么坐标系呢?w3c标准描述如下

The Geolocation API defines a high-level interface to location information associated only with the device hosting the implementation, such as latitude and longitude. The API itself is agnostic of the underlying location information sources. Common sources of location information include Glob al Positioning System (GPS) and location inferred from network signals such as IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs, as well as user input. No guarantee is given that the API returns the device's actual location.

大致的意思是可以从 GPS、IP 地址、RFID、WiFi、蓝牙 MAC 地址、GSM/CDMA 卡 ID 等获取当前位置信息,具体获取的地理位置根据浏览器实现和设置有所不同。获取的坐标系为国际坐标系。

h5 获取的是国际坐标系不是不好吗?这个问题没有确定答案,主要取决于你开发的应用服务于国内,国外,还是国内外通用。举个栗子:

A同学开发一款移动应用,需要获取用户当前位置,根据当前位置去后端拉去用户周围的门店。简单,用h5 geolocatin 获取当前位置再去,后端拉去一下数据不就行行了。然而第二天就有用户用户投诉:我眼前就有1家门店,返回的门店却是1000m外的门店,难道有人山寨你们?A同学很是头痛,经过一番调查发现,国内坐标系还有多种,而h5 获取的坐标系和后端存储的门店坐标系不一致。

为了避免这种问题可以使用第三方地位服务,例如百度地图API的浏览器定位功能

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

宾得开放相机SDK,可用手机控制相机

在单反相机市场中日渐式微的宾得,为了提升相机的App功能,开放了自家单反相机的SDK。

1183
来自专栏域名资讯

好米抢手 叠拼jinjin.com拍出30万高价

临近2017年年底了,但是米市显然呈现一幅越来越热闹的场景,不断有域名卖出好价格的交易消息传出。而近日就有两枚不错的域名结拍:jinjin.com...

1860
来自专栏知晓程序

只需这一个小程序,吃喝玩乐全解决!

从上图可知,「大众点评+」小程序风格与 app 一致。进入首页,即可看见一溜烟推荐的店铺。

541
来自专栏点滴科技资讯

全球监管科技创新概览—全球TOP21监管科技企业商业模式

232
来自专栏域名资讯

双拼市场好!米友售出域名chuijia.com

双拼域名在域名圈内一直备受关注与青睐,近段时间米友潘星在微博爆料,已售出域名chuijia.com。

1857
来自专栏知晓程序

还在用大众点评?不如让这款小程序,带你去吃小众美食

跟着美食达人的推荐走,就能发现身边令人惊喜的美食。只动嘴不动脑,才是个幸福的吃货呀。

914
来自专栏镁客网

想让你的手机拍摄3D画面?不妨试试这个神奇的小配件

1162
来自专栏VRPinea

7.31 VR扫描:Pico完成1.675亿元A轮融资,VR一体机年销量10万台左右

近日,Pico完成了A轮融资,这是Pico在2015年成立以来的首次公开融资。据悉,Pico本次融资规模为1.675亿元人民币,由广发乾和与广发信德领投,青岛巨...

952
来自专栏域名资讯

域名tbw.vip一口价58888元交易

字母域名一直是米市的明星域名,交易活跃,无论是终端还是投资人,都对其偏爱。近日又有一批域名被秒,下面来具体看看:

19410
来自专栏点滴科技资讯

埃森哲:2022年资本市场技术展望

381

扫码关注云+社区