首页
学习
活动
专区
圈层
工具
发布

涨姿势 | App定位和地图的那些坑

目前常见的坐标系有三种:地球坐标(WGS84,国际公认坐标),火星坐标(GCJ02,国家标准,适用于高德百度地图大陆+港澳部分、Google地图大陆部分),百度坐标(BD09,适用于百度地图大陆+港澳台部分...高德SDK没有坐标系参数设定,在大陆和港澳地区获取的坐标系即为GCJ02坐标系,在中国台湾和海外地区都是WGS84坐标系;百度SDK可以自行设定坐标系参数,即返回WGS84坐标系,还是GCJ02坐标系或者...海外地图(非大陆和非港澳台地区)是没有火星坐标或者百度坐标之说,都是标准的WGS84地球坐标系。...最坑的是iOS地图使用的数据源和当前手机所处的位置是相关的: 1)如果手机在大陆地区,iOS地图使用的是高德地图数据源:此时用户查看大陆和港澳台地图细节信息时,使用的是GCJ02火星坐标系,同时地图显示精度很高...2)如果手机在港澳台和海外地区,iOS地图使用的是TomTom地图数据源,该地图匹配的是WGS84地球坐标系,如果用户在海外查看国内地图,同时你的POI打点坐标系是GCJ02火星坐标系,那么就会产生偏差

7.1K60

Java【代码 04】坐标系说明+WGS84GCJ02BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)

)和投影坐标系PCS(Projected Coordinate System),地理坐标系进行地图投影后就变成了投影坐标系。...例如我们常见的世界地图,使用的就是一种墨卡托投影。其中地理坐标系又可分为参心坐标系和地心坐标系,常见的参心坐标系北京54、西安80,常见的地心坐标系有WGS84、GCJ02、BD09、GCS2000。...Google 和高德地图定位的的经纬度(国外)都是基于WGS84坐标系的;但是在国内是不允许直接用 WGS84 坐标系标注的,必须经过加密后才能使用。...因为 GPS 得到的经纬度直接在 GCJ02 坐标系下会定位到错误的地点,有种到了火星的感觉,因此在坊间也将 GCJ-02 戏称为火星坐标系。...国测局规定,国内出版的各种地图系统(包括电子形式),必须至少采用 GCJ02 对地理位置进行首次加密的坐标系,腾讯(搜搜)地图、阿里云地图、Google和高德(国内)都是使用 GCJ02 坐标系,可以说

39310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【JavaScript】经纬度转化 - 坐标系转换,度分秒,米

    在地理信息系统(GIS)、地图服务、导航、位置服务等应用中,我们经常需要处理不同的坐标系和经纬度表示格式。常见的坐标系有: WGS84:GPS全球卫星定位系统使用的坐标系,也是国际通用坐标系。...GCJ02:中国国家测绘局制定的坐标系,即“火星坐标系”,对WGS84坐标进行加密。 BD09:百度地图使用的坐标系,在GCJ02基础上进行了二次加密。...此外,经纬度的表示格式也有多种,最常见的是十进制表示法和度分秒表示法。 用途: 在不同地图服务(如Google地图、高德地图、百度地图)之间切换时,需要将坐标转换为对应的坐标系。...它支持多种坐标系(如WGS84、GCJ02、BD09等)之间的转换。 首先,我们需要安装gcoord: npm install gcoord 然后,我们可以在代码中引入并使用它。...示例代码:将WGS84坐标转换为GCJ02坐标 import { transform } from 'gcoord'; // 原始坐标,假设为WGS84坐标 const wgs84Point = [116.397428

    29910

    GIS坐标系:WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说与转换

    在我朝,地理坐标转换有:WGS84转GCJ02、GCJ02转BD009、BD09转GCJ02。WGS84大地坐标系GPS全球定位系统使用的坐标系统,GPS设备直接返回的坐标即为WGS84。...随GPS通用,能正确套到现在大部分基于这套坐标建立的卫星地图上。全球初神州外,几乎所有地图商都是使用这个坐标系,比如Google地图使用的就是WGS84坐标。...,也就是国际版G.map的卫星图和地图对不上的原因。...该标准的第4节第4.1款规定:4.1 导航电子地图在公开出版、销售、传播、展示和使用前,必须进行空间位置技术处理。...国内测绘公司都需要将坐标加密为火星坐标地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。

    4.3K10

    iOS地图开发1-定位(swift)

    概述 关于ios中地图定位相关的开发可以分两块,一块为调用ios的定位获取GPS坐标以及坐标–>地址,地址–>坐标,另一块就是调用苹果对地图的封装,也可以调用高德或者百度地图的SDK,不过引用将近10M...百度用的坐标系都是不一样的所以开发上就要注意得到的到底是哪个坐标系,以及坐标系之间的转换,三种标准如下所说: WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块) GCJ...-02:中国坐标偏移标准(又称火星坐标),国内的Google Map、高德、腾讯使用 BD-09: 百度坐标偏移标准,Baidu Map使用 坐标之间的关系 GCJ02是在WGS84的基础上进行偏移得到的...BD09是在GCJ02的基础上又一次处理得到的 可以相互转换的关系 WGS84 GCJ02 BD09 以上的转化关系都可以找到计算公式进行转换但是一下的两种没有 WGS84 —...> BD09 BD09 —> WGS84就只能间接转换 转换后的偏移会有点大 具体的转换代码下文给出 具体代码 (1)实现代理CLLocationManagerDelegate (2)定义全局变量地址管理与坐标解析

    1.9K10

    WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说明与转换

    WGS84大地坐标系 GPS全球定位系统使用的坐标系统,GPS设备直接返回的坐标即为WGS84。随GPS通用,能正确套到现在大部分基于这套坐标建立的卫星地图上。...全球初神州外,几乎所有地图商都是使用这个坐标系,比如Google地图使用的就是WGS84坐标。...,也就是国际版G.map的卫星图和地图对不上的原因。...该标准的第4节第4.1款规定:4.1 导航电子地图在公开出版、销售、传播、展示和使用前,必须进行空间位置技术处理。...国内测绘公司都需要将坐标加密为火星坐标 地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。

    8.3K40

    GIS坐标系测绘原理:大地水准面基准面参考椭球体EPSGSRIWKT

    网络墨卡托:Google地图和微软虚拟地球应用的是网络墨卡托,它是基于球体而不是椭球体的墨卡托投影,可以简化计算,但是损失了精度。因此用户再利用这种投影来做数据分析的时候必须考虑重投影。...Web Mercator 最早是由 Google 提出的,当前已经成为 Web Map 的事实标准。但是也许是由于上面”伪“的原因,最初 Web Mercator 被拒绝分配EPSG 代码。...于是大家普遍使用 EPSG:900913(Google的数字变形) 的非官方代码来代表它。...至今已是Google Maps和几乎所有其他Web制图应用程序使用的坐标系。...EPSG:4326 (WGS84) 在国际上,每个坐标系统都会被分配一个 EPSG 代码,EPSG:4326 就是 WGS84 的代码。

    6.5K11

    Google Earth Engine(GEE)——Error: Projection: The CRS of a map projection could not be parsed.(坐标转换错)

    世界地图 EPSG:4326 在世界地图方面,EPSG:4326是比较著名的一个,因为由美国主导的GPS系统就是在用它,它还有一个名气更大的别名叫作WGS84,WGS(World Geodetic System...)是世界大地测量系统的意思,由于是1984年定义的,所以叫WGS84,之前的版本还有WGS72、WGS66、WGS60。...EPSG:3857 另一个比较知名的编码是EPSG:3857,这也是一张世界地图,目前主要是各大互联网地图公司以它为基准,例如Google地图,Microsoft地图都在用它。...Earth Engine 使用 Java GeoTools库进行坐标系转换,该库支持坐标系众所周知的文本 (WKT)格式和一组基础投影。...大家可以点击上面的WKT链接,将代码作为一个变量放入到自己的参数当中,然后进行投影变化 // 加载一个简单的Landsat8影像 var image = ee.Image('LANDSAT/LC08/C01

    60410

    GIS数据漫谈(五)— 地理坐标系统

    我们很多时候直接用WGS84的坐标来代替CGCS2000坐标。因为CGCS2000的定义与WGS84实质一样,采用的参考椭球非常接近。扁率差异引起椭球面上的纬度和高度变化最大达0.1mm。...下面我们就来做两个小实验,来观察一下CGCS2000地理坐标系下的经纬度坐标。实验一CGCS2000坐标系下获取的经纬度和WGS84坐标系下获取的经纬度差距大吗?...假设在Google Map上以卫星底图为参考拾取的坐标是 WGS-84 的。由于天地图的坐标系统是CGCS2000的,在天地图上拾取一个点的经纬度来观察。...这里用的是QGIS,通过 XYZ Tiles图层加载的天地图卫星底图,再把shp文件叠加加载。第三个地图有些偏移,坐标位置的偏移有可能是原始数据本身的原因。...低代码ThingJS:低代码灵活开发数字孪生可视化应用• 低代码ThingJS提供了丰富的3D开发API、完善的开发文档和视频教程,熟悉基础的JavaScript前端知识即可上手数字孪生3D可视化应用开发

    3.1K30

    代码开源!在大型户外环境中基于路标的视觉语义SLAM

    此外,还建立了一个新的KITTI[4]序列数据集,该数据集包含相关街道上Google地图上的GPS信息和地标标签。...C GPS融合 GPS融合将建筑物地标与点云在像素级进行关联生成语义点云,需要将Google地图中使用的建筑物地标WGS84坐标转换为与点云相同的坐标系。...但是,从google地图API获得的WGS84中的经纬度不适合直接转换。因此,我们首先将坐标转换为笛卡尔坐标,单位为米。...根据KITTI原始数据中记录的GPS信息,通过Google地图记录地标GPS信息。数据集包含经度、纬度和地标的真实名称。我们记录序列00到10以进行评估和测试。它将很快向公众发布。...上图显示GPS位置的真值,下图显示转换后的位置 ? 拓扑地图可视化的结果 总结 本文提出了一种基于单目摄像机的带路标的语义SLAM系统,用于大规模户外定位和导航。

    2.9K20

    大地测量学:EPSG:4326、EPSG:3857

    显而易见的是,从三维到二维的转化,必然会导致变形和失真,失真是不可避免的,但是不同投影下会有不同的失真,这让我们可以有得选择。...3.1 EPSG:4326 (WGS84) 前面说了 WGS84 是目前最流行的地理坐标系统。在国际上,每个坐标系统都会被分配一个 EPSG 代码,EPSG:4326 就是 WGS84 的代码。...它是基于墨卡托投影的,把 WGS84坐标系投影到正方形。我们前面已经知道 WGS84 是基于椭球体的,但是伪墨卡托投影把坐标投影到球体上,这导致两极的失真变大,但是却更容易计算。...Web Mercator 最早是由 Google 提出的,当前已经成为 Web Map 的事实标准。但是也许是由于上面”伪“的原因,最初 Web Mercator 被拒绝分配EPSG 代码。...于是大家普遍使用 EPSG:900913(Google的数字变形) 的非官方代码来代表它。

    4.5K21

    从零开始搭建一个GIS开发小框架(三)——扩展功能:搜索地址

    在输入框中输入一个地址(要稍微级别高一点的地标类,比如达到POI点这个级别,太小的地址可能找不到),OpenCycleMap地图我没有找到搜索地址的API接口,于是调用高德的搜索API(不需要高德的底图...),因为高德返回的是gcj02坐标,OpenCycleMap使用的是wgs84坐标,所以要将gcj02坐标转wgs84坐标,再定位到底图上。...2 搜索地址实现 Search address function 功能菜单: 输入POI地址,点击确定,通过高德API获得gcj02坐标,换算为wgs84坐标,在底图上定位到该坐标,并增加一个Marker...3 核心功能代码 Code 核心动作:调取高德API,送地址参数,拿回火星坐标,转换成wgs84坐标,在地图上定位。 /// /// 由地址获得经纬度,再显示地图位置。...c.DownloadStringAsync(uri); } } 火星标转换为84方法代码: /// /// 火星转84 /// 该方法经过实战测试计算比较准确 naki

    98320

    gis经纬度坐标转换多格式兼容:支持字符串数组GeoJSON

    gstr.replace(coordinatesStrReg, (str, $1, $2, $3, $4, $5) => {  // lat=$1 lng lat=$4  console.log($1, $4)})代码...coordtransform2/* eslint-disable *//** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84...坐标系之间的转换 * https://www.npmjs.com/package/coordinate-convert WGS84 GPS全球定位系统使用的坐标系统,GPS设备直接返回的坐标即为WGS84...,另外Google地图使用的也是WGS84坐标 GCJ02 由中国国家测绘局制定的地理信息系统的坐标,国内出版的各种地图坐标系统(包括电子地图),必须至少采用GCJ02对WGS84进行首次加密。 ...72.004 || lng > 137.8347) || ((lat  55.8271) || false)}export default CoordsTransformer代码转载本站文章

    1.1K10

    高德百度坐标系转换方法

    大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识。...  国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。...3.火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 GCJ-02(火星坐标) 和 BD-09 (百度坐标) 算法代码如下,其中 bd_encrypt 将 GCJ-02 坐标转换成...这个算法的代码在互联网上是公开的,详情请使用 Google 搜索 "wgtochina_lb" 。...知道了这个算法之后,就可以离线进行 Google 地图偏移校正,不必像之前那么麻烦。 至于 GCJ-02 到 WGS-84 的转换(即 GPS 纠偏),可以使用二分法。

    7.4K20

    WebGis技术汇总

    所以我们常常看到和用到的坐标系数据往往不是墨卡托坐标,而是EPSG:4326坐标系下的坐标数据。...因为GPS得到的经纬度直接在 GCJ-02 坐标系下会定位到错误的地点,有种到了⽕星的感觉,因此在坊间也将 GCJ-02 戏称为火星坐标系。...百度地图采用 BD09 百度坐标系,叠加到 Leaflet 和 Cesium 默认的 WGS84 通用坐标系需要进行纠偏。 2个格式的数据怎么互转呢?...// b = a * (1 - f) // ee = (a^2 - b^2) / a^2; var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子...* 提供了百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)、和 WGS-84 坐标系之间的转换 */ // UMD 魔法代码 // if the module has no dependencies

    1.5K30

    山月目前在做 APP 及旅游中涉及到的地理科普

    如何准确标识地球上某一位置? 从初中地理学到的东西可以知道:经纬度 经度 经度,用以指示一个地点的东西向地理位置。地球上某一地点离本初子午线以东或以西的度数。...世界经度与时区图 纬度 纬度,用以指示一个地点的南北向地理位置,其范围从赤道的0°到南北极的90°,「北纬为正数,南纬为负数」。...,从某一地址到经纬度坐标的转化也叫做「地理编码」 百度拾取坐标系统[1] 从经纬度到具体地址的转化成为「逆地理编码」,但由于存在不同的坐标系对经纬度加密,此时需要执行编码坐标系 WGS84 (World...采用地图如谷歌 GCJ02 (GuoJia Cehui Ju), 火星坐标系,WGS84 坐标系加密后的坐标系,由中国国家测绘地理信息局制定,在国内需要使用基于 GCJ02 的坐标系。...采用地图如Google国内地图、高德、腾讯地图 BD09,百度坐标系,GCJ02坐标系加密后的坐标系 批量工具网[2] 高德地理编码、逆编码[3] Reference [1] 百度拾取坐标系统: http

    1.5K30

    java调用百度地图API根据地理位置获取经纬度

    lbsyun.baidu.com/apiconsole/key 创建完毕之后我们就可以正式的开发了 *通过本章节你将了解到* 1,通过地理位置,获取到详细的经纬度 先导入一下我们的httpclient...output=json&location=showLocation"; /** * 地理编码 * @param address (广东省广州市黄埔区) * 详细的位置信息..."+html); } from参数说明 源坐标类型: 1:GPS设备获取的角度坐标,WGS84坐标; 2:GPS获取的米制坐标、sogou地图所用坐标; 3:google地图、soso地图...、aliyun地图、mapabc地图和amap地图所用坐标,国测局(GCJ02)坐标; 4:3中列表地图坐标对应的米制坐标; 5:百度地图采用的经纬度坐标; 6:百度地图采用的米制坐标; 7:mapbar...地图坐标; 8:51地图坐标 返回信息 {“status”:0,“result”:[{“x”:113.54988989895114,“y”:23.13628309504525}]} x float

    1.2K10

    Android 集成腾讯定位

    由于众所周知的原因,在中国境内所有的出版电子地图都必须要经过至少一次加偏(也就是所谓的国测局火星坐标系),因此国内地图提供商为了更好的对接产品,纷纷推出了自家的坐标系,也就是在火星坐标系基础之上再次加偏的高德坐标...在使用的过程中遇到以下几个问题: 位置监听服务器注册失败 so文件导入错误 配置定位 官网教程:Android定位SDK的安装和使用 下面记录以下主要流程和解决问题的方法: 第一步、导入库文件 找到开发包中的...libtencentloc.zip文件夹,拷贝相应目录下的so文件到目标工程中的 libs目录下。...,这里涉及到定位权限,因此需要使用如下代码获取权限: if (Build.VERSION.SDK_INT >= 23) { String[] permissions = {...0 注册位置监听器成功 1 设备缺少使用腾讯定位SDK需要的基本条件 2 配置的 key 不正确 3 自动加载libtencentloc.so失败,可能由以下原因造成: 返回码3可能是以下原因造成:

    2.1K20

    微信小程序结合腾讯地图获取用户所在城市信息

    背景 实现小程序进去后会获取用户当前所在城市,然后显示该城市的数据,并且显示在导航栏和 Tab上。...微信小程序中,我们可以通过调用wx.getLocation()获取到设备当前的地理位置信息,这个信息是当前位置的经纬度。如果我们想获取当前位置是处于哪个国家,哪个城市等信息,该如何实现呢?...所以整个步骤就是: 在小程序中获取当前的地理位置,涉及小程序API为wx.getLocation 把第1步中获得的经纬度信息通过腾讯地图的接口逆地址解析,涉及腾讯地图接口为reverseGeocoder...(options:Object) 在小程序中获取当前的地理位置 在小程序中,调用wx.getLocation,使用前需要用户授权scope.userLocation,代码如下 checkAuth(callback...: wgs84意思返回 gps 坐标 gcj02返回可用于wx.openLocation的坐标 运行后会提示如下信息,还需要在 app.json 中配置permission字段 [izy2qnr4ss.png

    2.4K20

    FreeJTS部标视频平台:车载坐标系与地图坐标系转换

    背景 最近在开发部标平台中进行轨迹回放的定位接口中,返发现回的是WSG-84坐标系下的经纬度信息,但项目前端使用的是高德地图,发现位置有偏移。经了解,需要进行车载坐标系和地图坐标系进行转换。...常见坐标系 WGS84坐标系 地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系。...GCJ02坐标系 火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 BD09坐标系 百度地图使用坐标系,GCJ02坐标系经加密后的坐标系。...* pi) + 300.0 * sin(x / 30.0 * pi)) * 2.0 / 3.0; return ret; } /*参数 wgLat:WGS-84纬度wgLon:WGS-84经度 返回值...: 国际做法: 百度做法: 总结 经过上述过程后,车载GPS在地图上绘制后即可不会偏移 规划车辆路线时,同理需要将GCJ02转成WGS84才能发给设备

    1.2K20
    领券