{"id":13457588,"url":"https://github.com/hujiulong/gcoord","last_synced_at":"2025-05-12T20:49:36.999Z","repository":{"id":37680265,"uuid":"119837635","full_name":"hujiulong/gcoord","owner":"hujiulong","description":"地理坐标系转换工具","archived":false,"fork":false,"pushed_at":"2025-01-14T08:04:57.000Z","size":310,"stargazers_count":3154,"open_issues_count":3,"forks_count":390,"subscribers_count":54,"default_branch":"master","last_synced_at":"2025-05-08T04:05:25.819Z","etag":null,"topics":["bd-09","gcj-02","geojson","javascript","map","wgs84"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hujiulong.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-01T13:13:05.000Z","updated_at":"2025-05-07T03:22:09.000Z","dependencies_parsed_at":"2024-06-18T12:20:53.120Z","dependency_job_id":"8778ef47-b249-4f2a-a1e4-2973cbfa330f","html_url":"https://github.com/hujiulong/gcoord","commit_stats":{"total_commits":146,"total_committers":6,"mean_commits":"24.333333333333332","dds":0.226027397260274,"last_synced_commit":"e5cd1465f0111d1a80d9abb79378177796dcbe9f"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hujiulong%2Fgcoord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hujiulong%2Fgcoord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hujiulong%2Fgcoord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hujiulong%2Fgcoord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hujiulong","download_url":"https://codeload.github.com/hujiulong/gcoord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253391195,"owners_count":21900943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bd-09","gcj-02","geojson","javascript","map","wgs84"],"created_at":"2024-07-31T09:00:30.700Z","updated_at":"2025-05-12T20:49:36.958Z","avatar_url":"https://github.com/hujiulong.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Geospatial Library","目录"],"sub_categories":["JavaScript"],"readme":"# Gcoord\n\n[![npm version](https://img.shields.io/npm/v/gcoord.svg)](https://www.npmjs.com/package/gcoord)\n[![codecov](https://codecov.io/gh/hujiulong/gcoord/branch/master/graph/badge.svg)](https://codecov.io/gh/hujiulong/gcoord)\n[![gzip size](http://img.badgesize.io/https://unpkg.com/gcoord/dist/gcoord.global.prod.js?compression=gzip)](https://unpkg.com/gcoord/dist/gcoord.global.prod.js)\n[![LICENSE](https://img.shields.io/npm/l/gcoord.svg)](https://www.npmjs.com/package/gcoord)\n[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)\n\n**gcoord**(**g**eographic **coord**inates)是一个处理地理坐标系的JS库，用来修正百度地图、高德地图及其它互联网地图坐标系不统一的问题。\n\n支持转换坐标数组和 GeoJSON 数据，无外部依赖，能在 nodejs、所有现代浏览器（IE8+）和 React Native 等环境中运行，gzip后仅3kb。\n\n更多信息可以阅读[地理坐标系](https://github.com/hujiulong/gcoord/wiki/%E5%9C%B0%E7%90%86%E5%9D%90%E6%A0%87%E7%B3%BB)\n\n## 🚨 注意\n在发布、展示、传播数据时，请务必遵守相关法律规定\n\n\u003e （禁止）未经批准，在测绘活动中擅自采用国际坐标系统 \u003cbr\u003e — 中华人民共和国测绘法，40 (1)\n\n\u003e 导航电子地图在公开出版、销售、传播、展示和使用前，必须进行空间位置技术处理。\u003cbr\u003e — GB 20263―2006《导航电子地图安全处理技术基本要求》，4.1\n\n## 安装\n通过npm安装:\n```bash\nnpm install gcoord --save\n```\n\n或者直接在页面中通过 script 标签引入:\n```html\n\u003cscript src=\"https://unpkg.com/gcoord/dist/gcoord.global.prod.js\"\u003e\u003c/script\u003e\n```\n注意：通过 script 标签引入时请务必指定版本号\n\n## 引入\nCommonJS:\n```js\nconst gcoord = require('gcoord');\n```\n\nES Module:\n```js\nimport gcoord from 'gcoord';\n```\n\n通过 script 标签引入可以直接使用全局变量 `gcoord` 或 `window.gcoord`\n\n\n## 使用\n例如从手机的GPS得到一个经纬度坐标，需要将其展示在百度地图上，则应该将当前坐标从[WGS-84](https://github.com/hujiulong/gcoord/wiki/%E5%9C%B0%E7%90%86%E5%9D%90%E6%A0%87%E7%B3%BB#wgs-84---%E4%B8%96%E7%95%8C%E5%A4%A7%E5%9C%B0%E6%B5%8B%E9%87%8F%E7%B3%BB%E7%BB%9F)坐标系转换为[BD-09](https://github.com/hujiulong/gcoord/wiki/%E5%9C%B0%E7%90%86%E5%9D%90%E6%A0%87%E7%B3%BB#bd-09---%E7%99%BE%E5%BA%A6%E5%9D%90%E6%A0%87%E7%B3%BB)坐标系\n```js\nvar result = gcoord.transform(\n  [116.403988, 39.914266],    // 经纬度坐标\n  gcoord.WGS84,               // 当前坐标系\n  gcoord.BD09                 // 目标坐标系\n);\n\nconsole.log(result);  // [116.41661560068297, 39.92196580126834]\n```\n同时gcoord还可以转换GeoJSON对象的坐标系，详细使用方式可以参考[API](#api)\n\n## API\n\n### transform(input, from, to)\n进行坐标转换\n\n**参数**\n-   `input` **[GeoJSON][GeoJSON] | [string][string] | [Array][Array]\u0026lt;[number][number]\u003e** GeoJSON对象，或GeoJSON字符串，或经纬度数组\n-   `from` **[CRS](#crs)** 当前坐标系\n-   `to` **[CRS](#crs)** 目标坐标系\n\n**返回值**\n\n**[GeoJSON][GeoJSON] | [Array][Array]\u0026lt;[number][number]\u003e**\n\n**示例**\n```js\n// 将GCJ02坐标转换为WGS84坐标\nvar result = gcoord.transform([123, 45], gcoord.GCJ02, gcoord.WGS84);\nconsole.log(result);  // [122.99395597, 44.99804071]\n```\n\n```js\n// 转换GeoJSON坐标\nvar geojson = {\n  \"type\": \"Point\",\n  \"coordinates\": [123, 45]\n}\ngcoord.transform(geojson, gcoord.GCJ02, gcoord.WGS84);\nconsole.log(geojson.coordinates); // [122.99395597, 44.99804071]\n```\n\n返回数组或GeoJSON对象（由输入决定），**注意：当输入为GeoJSON时，transform会改变输入对象**\n\n### CRS\nCRS为坐标系，目标支持以下几种坐标系\n\n| CRS                | 坐标格式   | 说明    |\n| --------           | --------- | ----- |\n| gcoord.WGS84       | [lng,lat] | WGS-84坐标系，GPS设备获取的经纬度坐标   |\n| gcoord.GCJ02       | [lng,lat] | GCJ-02坐标系，google中国地图、soso地图、aliyun地图、mapabc地图和高德地图所用的经纬度坐标   |\n| gcoord.BD09        | [lng,lat] | BD-09坐标系，百度地图采用的经纬度坐标    |\n| gcoord.BD09LL      | [lng,lat] | 同BD09  |\n| gcoord.BD09MC      | [x,y]     | BD-09米制坐标，百度地图采用的米制坐标，单位：米  |\n| gcoord.BD09Meter   | [x,y]     | 同BD09MC |\n| gcoord.Baidu       | [lng,lat] | 百度坐标系，BD-09坐标系别名，同BD-09  |\n| gcoord.BMap        | [lng,lat] | 百度地图，BD-09坐标系别名，同BD-09  |\n| gcoord.AMap        | [lng,lat] | 高德地图，同GCJ-02  |\n| gcoord.WebMercator | [x,y]     | Web Mercator投影，墨卡托投影，同EPSG3857，单位：米 |\n| gcoord.WGS1984     | [lng,lat] | WGS-84坐标系别名，同WGS-84  |\n| gcoord.EPSG4326    | [lng,lat] | WGS-84坐标系别名，同WGS-84  |\n| gcoord.EPSG3857    | [x,y]     | Web Mercator投影，同WebMercator，单位：米  |\n| gcoord.EPSG900913  | [x,y]     | Web Mercator投影，同WebMercator，单位：米  |\n\n**支持更多坐标系？**\ngcoord的目标是处理web地图中的坐标，目前支持的坐标系已经能满足绝大部分要求了，同时gcoord也能保持轻量。如果需要更专业的坐标系处理工具，可以使用[proj4js](https://github.com/proj4js/proj4js)等开源库\n\n\n## LICENSE\nMIT\n\n[number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number\n[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String\n[Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array\n[Object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\n[Error]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\n\n[GeoJSON]: https://tools.ietf.org/html/rfc7946#page-6\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhujiulong%2Fgcoord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhujiulong%2Fgcoord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhujiulong%2Fgcoord/lists"}