正确经纬度坐标写法(正确经纬度坐标写法度分秒)

正确经纬度坐标写法(正确经纬度坐标写法度分秒)

一个提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具模块(另外还提供了python版本的代码https://github.com/wandergis/coordTransform_py)


支持node、浏览器(AMD方式和直接引用方式)

  • GitHub地址:https://github.com/wandergis/coordtransform
  • npm地址:https://www.npmjs.com/package/coordtransform
  • 项目主页:http://wandergis.github.io/coordtransform/

为什么写这个模块

随着移动互联网的兴起,几乎每一个app都会去收集用户位置,如果恰好你在处理与地理定位相关的代码,并且不了解地理坐标系的话,肯定要被我大天朝各种坐标系搞晕。写这个模块的目的也是因为项目中app获取的坐标是百度sdk获取的,在做webgis可视化的时候各种偏,各种坐标不对。


当前互联网地图的坐标系现状

地球坐标 (WGS84)

  • 国际标准,从专业GPS 设备中取出的数据的坐标系
  • 国际地图提供商使用的坐标系

火星坐标 (GCJ-02)也叫国测局坐标系

  • 中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系
  • 国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

百度坐标 (BD-09)

  • 百度标准,百度 SDK,百度地图,Geocoding 使用
  • (本来就乱了,百度又在火星坐标上来个二次加密)

开发过程需要注意的事

  • 从设备获取经纬度(GPS)坐标
	如果使用的是百度sdk那么可以获得百度坐标(bd09)或者火星坐标(GCJ02),默认是bd09
	如果使用的是ios的原生定位库,那么获得的坐标是WGS84
	如果使用的是高德sdk,那么获取的坐标是GCJ02
  • 互联网在线地图使用的坐标系
火星坐标系:
		iOS 地图(其实是高德)
		Gogole地图
		搜搜、阿里云、高德地图
百度坐标系:
		当然只有百度地图
WGS84坐标系:
		国际标准,谷歌国外地图、osm地图等国外的地图一般都是这个

举个栗子

笔者所在的公司app使用的是百度的sdk,需要对定位坐标做web可视化效果,百度地图提供的js api满足不了需求,选用leaflet来做可视化,这里要说到百度地图了,它使用的坐标系和切图的原点都不一致,并且其加偏还是非线性的,因此无法利用常用的加载方法去加载,放弃使用它的底图,选用了符合标准的高德底图,高德底图使用的是国测局坐标也就是GCJ02坐标系,如果简单的将app获取的经纬度叠加上去,就有可能你本来在百度大厦的位置就显示在西二旗地铁站了甚至更远,因此需要将bd09转成gcj02坐标系,这个时候这个库就有了用武之地,对点批量转换再加载到底图上,就可以让点显示在本应该出现的位置。

另外如果你拿到了一些WGS84的坐标,想加载到各种底图上就可以根据这个库在底图坐标系和你的数据坐标系之间进行转换。希望对大家有用吧。


安装(install)

npm install coordtransform

示例用法(Example&Usage)

1 NodeJs用法

//国测局坐标(火星坐标,比如高德地图在用),百度坐标,wgs84坐标(谷歌国外以及绝大部分国外在线地图使用的坐标)
var coordtransform=require('coordtransform');
//百度经纬度坐标转国测局坐标
var bd09togcj02=coordtransform.bd09togcj02(116.404, 39.915);
//国测局坐标转百度经纬度坐标
var gcj02tobd09=coordtransform.gcj02tobd09(116.404, 39.915);
//wgs84转国测局坐标
var wgs84togcj02=coordtransform.wgs84togcj02(116.404, 39.915);
//国测局坐标转wgs84坐标
var gcj02towgs84=coordtransform.gcj02towgs84(116.404, 39.915);
console.log(bd09togcj02);
console.log(gcj02tobd09);
console.log(wgs84togcj02);
console.log(gcj02towgs84);
//result
//bd09togcj02: [ 116.39762729119315, 39.90865673957631 ]
//gcj02tobd09: [ 116.41036949371029, 39.92133699351021 ]
//wgs84togcj02: [ 116.41024449916938, 39.91640428150164 ]
//gcj02towgs84: [ 116.39775550083061, 39.91359571849836 ]

2 浏览器用法

直接引用目录内的index.js,会有一个coordtransform的全局对象暴露出来,也支持用AMD加载器加载

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>coordTransform</title>
</head>
<body>
<h1>请按F12打开控制台查看结果</h1>
<script src="index.js"></script>
<script>
 //国测局坐标(火星坐标,比如高德地图在用),百度坐标,wgs84坐标(谷歌国外以及绝大部分国外在线地图使用的坐标)
 //百度经纬度坐标转国测局坐标
 var bd09togcj02 = coordtransform.bd09togcj02(116.404, 39.915);
 //国测局坐标转百度经纬度坐标
 var gcj02tobd09 = coordtransform.gcj02tobd09(116.404, 39.915);
 //wgs84转国测局坐标
 var wgs84togcj02 = coordtransform.wgs84togcj02(116.404, 39.915);
 //国测局坐标转wgs84坐标
 var gcj02towgs84 = coordtransform.gcj02towgs84(116.404, 39.915);
 console.log(bd09togcj02);
 console.log(gcj02tobd09);
 console.log(wgs84togcj02);
 console.log(gcj02towgs84);
 //result
 //bd09togcj02: [ 116.39762729119315, 39.90865673957631 ]
 //gcj02tobd09: [ 116.41036949371029, 39.92133699351021 ]
 //wgs84togcj02: [ 116.41024449916938, 39.91640428150164 ]
 //gcj02towgs84: [ 116.39775550083061, 39.91359571849836 ]
</script>
</body>
</html>

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/kexue/11358.html

(0)
句子百科句子百科
上一篇 2022年 8月 24日
下一篇 2022年 8月 24日

相关推荐

  • 免税店的东西是正品吗(海南免税店的东西是正品吗)

    相信有不少希望买买买的消费者都喜欢到免税店购买东西,尤其是国外的免税店,一般都会比国内的商品便宜一些,质量也有保障。但是今天这种市场已经悄然发生了变化,去国外旅游,除了旅行团之外,免税店才是国外旅游的最大骗局! 这几个免税店最大的骗局,你都知道吗? 骗局一:免税店商品“质量好、价格便宜” 很多国外的免税店商品都会因为消费者不清楚价格,而定一些高价,部分导游也…

    2022年 8月 24日
  • 中国最好的食盐品牌(中国食盐品牌排行前100名)

    “雪往矣,天还冷,今上九,万象新,皆盛宴,莫等闲”! 今天是大年初九,从初一开始,几乎每一天都有专属自己的习俗。 那大年初九有啥习俗呢?初九被称为“天日”,民间称其为“玉皇诞辰日”,许多人都在晚些时候开始祭拜“玉皇大帝”。 另外,今天也是出门办事的好日子! 老话常说,“七不出,八不归,上九办事一大堆”,因今天有好多人祭拜天公,故人家高兴,人们办事也就顺利。 …

    2022年 12月 25日
  • 中国十大名牌钓鱼线(中国十大名牌钓鱼线百度)

    最近有很多朋友都想知道中国十大名牌钓鱼线是什么。今天小编特意为大家整理了相关知识来解答!还有其他网友想搞清楚中国十大名牌钓鱼线百度,句子百科(www.sws100.com)已经为你找到了相关问题的答案,接下来一起看看吧,希望能给大家带来帮助。 日本PE钓鱼线21款推荐人气排名[2020最新版] PE线是一种通用的钓鱼线,广泛用于各种诱饵钓鱼场景,而不论淡水或…

    2022年 8月 30日
  • 时间在哪里设置(苹果手机时间在哪里设置)

    华为p30灭屏显示时间怎么设置 1、首先点击进入华为p30手机的桌面,点击进入桌面上的【设置】, 2、在设置页面点击进入【安全和隐私】, 3、可以找到【锁屏和密码】,点击打开, 4、接下来点击进入【灭屏显示】, 5、最后点击打开立即启用后面的开关即可,我们还可以点击下面的开始时间、结束时间对开始和结束的时间进行设置,这样手机在指定的时间就会自动开启熄屏时钟了…

    2023年 2月 25日
  • 万加足念什么(万加足念什么意思开学第一课)

    新华社北京10月20日电 题:埋头苦干,用新的伟大奋斗创造新的伟业——来自基层蹲点现场的报道 新华社记者 机器轰鸣、塔吊林立,金秋的河北雄安新区沉浸在热火朝天的建设氛围之中。 城区雏形初显,科技创新项目、高端高新产业加快落地,承接北京非首都功能疏解项目初见成效……几年来,雄安新区启动区指挥部常务副指挥长葛亮见证了这座“未来之城”从蓝图一步步变成现实。 这是1…

    2022年 12月 21日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信