gcoord

地理坐标系转换工具,支持WGS84/GCJ02/BD09等常用坐标系互转

Github stars Tracking Chart

Gcoord

npm version
codecov
gzip size
LICENSE
996.icu

gcoord(geographic coordinates)是一个处理地理坐标系的JS库,用来修正百度地图、高德地图及其它互联网地图坐标系不统一的问题。

支持转换坐标数组和GeoJSON数据,能在node环境以及所有现代浏览器(IE8+)中运行,gzip后仅3kb。

更多信息可以阅读地理坐标系

Install

通过npm安装:

npm install gcoord --save

或者直接在页面中引入:

<script src="https://unpkg.com/gcoord/dist/gcoord.js"></script>

Import

CommonJS:

const gcoord = require('gcoord');
// 或者
const { transform, WGS84, GCJ02 } = require('gcoord');

ES Module:

import gcoord from 'gcoord'
// 或者
import { transform, WGS84, GCJ02 } from 'gcoord'

同时也支持AMD和CMD规范

Usage

例如从手机的GPS得到一个经纬度坐标,需要将其展示在百度地图上,则应该将当前坐标从WGS-84坐标系转换为BD-09坐标系

var result = gcoord.transform(
  [116.403988, 39.914266],    // 经纬度坐标
  gcoord.WGS84,               // 当前坐标系
  gcoord.BD09                 // 目标坐标系
);

console.log(result);  // [116.41661560068297, 39.92196580126834]

同时gcoord还可以转换GeoJSON对象的坐标系,详细使用方式可以参考API

API

transform(input, from, to)

进行坐标转换

参数

返回值

GeoJSON, Array<number>

示例

// 将GCJ02坐标转换为WGS84坐标
var result = gcoord.transform([123, 45], gcoord.GCJ02, gcoord.WGS84);
console.log(result);  // [122.99395597, 44.99804071]
// 转换GeoJSON坐标
var geojson = {
  "type": "Point",
  "coordinates": [123, 45]
}
gcoord.transform(geojson, gcoord.GCJ02, gcoord.WGS84);
console.log(geojson.coordinates); // [122.99395597, 44.99804071]

返回数组或GeoJSON对象(由输入决定),注意:当输入为GeoJSON时,transform会改变输入对象

CRS

CRS为坐标系,目标支持以下几种坐标系, CRS            , 坐标格式, 说明  , --------, ---------, -----, gcoord.WGS84, [lng,lat], WGS-84坐标系,GPS设备获取的经纬度坐标, gcoord.GCJ02, [lng,lat], GCJ-02坐标系,google中国地图、soso地图、aliyun地图、mapabc地图和高德地图所用的经纬度坐标, gcoord.BD09, [lng,lat], BD-09坐标系,百度地图采用的经纬度坐标, gcoord.BD09LL, [lng,lat], 同BD09, gcoord.BD09MC, [x,y], BD-09米制坐标,百度地图采用的米制坐标,单位:米, gcoord.BD09Meter, [x,y], 同BD09MC, gcoord.Baidu, [lng,lat], 百度坐标系,BD-09坐标系别名,同BD-09, gcoord.BMap, [lng,lat], 百度地图,BD-09坐标系别名,同BD-09, gcoord.AMap, [lng,lat], 高德地图,同GCJ-02, gcoord.WebMercator, [x,y], Web Mercator投影,墨卡托投影,同EPSG3857,单位:米, gcoord.WGS1984, [lng,lat], WGS-84坐标系别名,同WGS-84, gcoord.EPSG4326, [lng,lat], WGS-84坐标系别名,同WGS-84, gcoord.EPSG3857, [x,y], Web Mercator投影,同WebMercator,单位:米, gcoord.EPSG900913, [x,y], Web Mercator投影,同WebMercator,单位:米, 支持更多坐标系?
gcoord的目标是处理web地图中的坐标,目前支持的坐标系已经能满足绝大部分要求了,同时gcoord也能保持轻量。如果需要更专业的坐标系处理工具,可以使用proj4js等开源库

LICENSE

MIT

Main metrics

Overview
Name With Ownerhujiulong/gcoord
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2018-02-01 13:13:05
Pushed At2025-01-14 08:04:57
Last Commit At2025-01-14 16:04:42
Release Count22
Last Release Namev1.0.7 (Posted on )
First Release Namev0.0.1 (Posted on )
用户参与
Stargazers Count3.2k
Watchers Count54
Fork Count393
Commits Count155
Has Issues Enabled
Issues Count45
Issue Open Count1
Pull Requests Count36
Pull Requests Open Count2
Pull Requests Close Count156
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private