npm 包 sphericalmercator 使用教程

前言

Web 地图中坐标系转换是非常重要且常见的操作,其中 Mercator 投影是 Web 地图中最常用的一种投影方式,因为它可以在不失真的同时在 Web 等比例缩放的地图上进行坐标的展示和实现。 sphericalmercator 是 Node.js 中一个非常流行的坐标系转换库,支持 Mercator 投影下的坐标系转换,通常用于将经纬度(WGS84)坐标转换成瓦片([x, y]) 坐标或者将瓦片坐标转换成地理坐标。这篇文章主要是一份详细的使用文档,帮助大家更好的使用这个工具。

sphericalmercator 介绍

sphericalmercator 具有以下特点:

  1. 支持了 JavaScript 中最常见的 GIS 坐标系
  2. 良好的设计,易于扩展
  3. 完备的测试用例
  4. 完善的文档和使用样例

sphericalmercator 的安装

在开始使用前,我们需要使用 npm 进行安装:

--- ------- ----------------- ------

sphericalmercator 的使用

初始化

首先我们需要学会如何初始化一个 sphericalmercator 实例 :

--- -- - --- -------------------
  ----- ---
--

我们可以看到,我们可以通过传入一个设置对象来进行 sphericalmercator 的初始化。其中,size 表示瓦片的大小,是一个可选参数,如果不传递的话,那么瓦片的大小默认为 256。

转换坐标

经度-纬度(WGS84)坐标到瓦片坐标的转换过程非常简单,我们只需要调用转换方法即可:

--- -- - ------ ----
--- - - -

--------------------- --- -- - -- - -
---------------------- -- --- -- ------ ------------------- ---- ------------------

我们用 ll 表示一个点的经度和纬度,使用 px 方法可以对经纬度进行转换,转化结果是对应的瓦片坐标,此处为 [0,0]。你也可以使用 bbox 方法将此瓦片的边界转换为经纬度范围。 这里需要注意的是,这个库的px()方法返回一个 npm 包标准的 [x,y]的数组格式,其分别表示 x 轴和 y 轴坐标值。当你按照这种方式瓦片的边缘(top、left、bottom 和 right)进行测量时,这里的值反转,这意味着你可以得到左上角点的值,而不是如你所想的左下角。所以要注意判断。

--- -- - ------ ----
--- - - -
--- ---- - --------- --
--- ------- - ----------- --

-------------------- -----
----------------------- --------

我们可以通过 px 方法将 ll 点转成的[x,y]坐标值,再使用 ll 方法将瓦片坐标转成对应的经度-纬度,发现 px 转换出来的结果与经纬度转换后又是原来的值,如下所示:

sphericalmercator 的 API

SphericalMercator 类的大多数 API 方法都在前面部分有提到了,但这里有一个更完整的 API 列表:

  1. `constructor({ size: sizeOfTile = 256, ...opts: { a, b, e, ...otherOpts } }) 初始化函数
  2. px([ lon, lat ], zoom):坐标转瓦片像素坐标
  3. ll([ x, y ], zoom, tms_style = false, srs = "EPSG:4326"):瓦片像素坐标转坐标
  4. bbox(x, y, zoom, tms_style = false, srs = "EPSG:4326"):将给定的瓦片位置(x/y)和缩放级别转换为投影下的边界坐标
  5. xyz(bbox, zoom, tms_style = false, srs = "EPSG:4326"):转换给定 bboxzoom 设置的父级瓦片坐标 x/y/z
  6. tms_to_xyz(xyz[, tms_style = false]):将与 TMS 样式 URL 中转换的搜索引擎地图网{x}/{y}/{zoom}址参数相关的瓦片坐标转换为 std XYZ TMS 指数
  7. xyz_to_tms(xyz[, tms_style = false]):将 XYZ TMS 瓦片坐标转换为与 TMS-Style 访问 {x}/{y}/{zoom} 类型的 URL 时相关的参数

示例代码

----- ----------------- - ----------------------------
--- -- - --- -------------------
  ----- ---
--

--- -- - ------ ----
--- - - -
--- ---- - --------- --
--- ------- - ----------- --

-------------------- -----
----------------------- --------

输出:

----- --- --
-------- ------ -------------------

总结

以上是关于 sphericalmercator 的介绍与使用教程,如果有任何疑问或建议,请留言讨论。在前端开发中,坐标系处理是一个非常重要的操作, sphericalmercator 是其中一个不错的选择,希望这篇文章能够对大家有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600670a58ccae46eb111f1b3


猜你喜欢

  • npm 包 webpack-opener 使用教程

    在前端开发中,我们经常会使用 webpack 来构建和打包我们的项目。在开发过程中,我们需要频繁地启动本地服务器来预览和测试项目,但是每次手动打开浏览器并输入地址是有一定繁琐的。

    4 年前
  • npm 包 webpack-oss-plugin 使用教程

    在前端开发中,webpack 是一个重要的工具,它可以将多个源文件打包成一个或多个输出文件。但是,在将这些文件部署到线上服务器时,我们还需要将这些输出文件通过 FTP 等方式上传到服务器上,这样就显得...

    4 年前
  • npm 包 weex-hello 使用教程

    随着智能设备的普及,移动前端开发逐渐成为一个热门的领域。其中,weex 是一个提高开发效率的框架,通过它我们可以将一套前端代码快速地打包到多个平台上。本文将介绍 npm 包 weex-hello 的使...

    4 年前
  • npm 包 websocket-lib 使用教程

    WebSocket 是一种网络通信协议,它可以在客户端和服务器之间提供双向实时通信。websocket-lib 是一个基于 TypeScript 开发的 npm 包,提供了 WebSocket 连接的...

    4 年前
  • npm 包 websocket-monkeypatch 使用教程

    介绍 websocket-monkeypatch 是一个 JavaScript 库,用于在浏览器中对 WebSocket 进行 monkeypatch。它提供了以下功能: 访问原始事件,包括 ono...

    4 年前
  • npm 包 weex-bindingx 使用教程

    简介 weex-bindingx 是一个基于 weex 的运动引擎,它可以帮助开发者更方便地管理界面上的运动效果。基于 weex-bindingx,你可以轻松地实现各种运动效果,如渐变、旋转、移动等等...

    4 年前
  • npm 包 weex-builder 使用教程

    在开发移动应用时,使用 weex 框架可以极大地提高开发效率。而 weex-builder 就是一款能够帮助我们编译、打包和发布 weex 应用的工具。 本文将介绍如何使用 npm 包 weex-bu...

    4 年前
  • npm 包 weex-canvas 使用教程

    介绍 weex-canvas 是一款用于在 Weex 平台上使用 Canvas 绘图的 npm 包。我们可以使用它创建各种图形和动画,构建更具交互性和视觉吸引力的应用程序。

    4 年前
  • npm 包 weex-flymeui 使用教程

    前言 前端开发中,界面设计需要一个好用的 UI 库来支持。weex-flymeui 是一个基于 weex 平台的 UI 库,它提供了丰富的 UI 控件和交互组件,可以让我们快速的搭建出一个符合自己需求...

    4 年前
  • npm 包 weex-components 使用教程

    在前端开发中,我们经常会用到各种库和框架来快速构建应用。其中,使用 npm 包可以让我们轻松地引入和使用其他人开发的代码,而不用重新编写实现。本篇文章将介绍一个常用的 npm 包 weex-compo...

    4 年前
  • npm 包 weex-html5 使用教程

    Weex 是一个跨平台的移动端开发框架,它采用了 Vue.js 的语法,但是代码实现是基于原生 iOS 和 Android 的。 weex-html5 是一个 Weex 插件,它可以将 Weex 渲染...

    4 年前
  • npm 包 webserviced 使用教程

    什么是 webserviced webserviced 是一个基于 Node.js 的 npm 包,用于快速创建 RESTful Web 服务。它提供了一个简单易用的 API,帮助开发者轻松地创建自己...

    4 年前
  • npm 包 websocket-multiplex-client 使用教程

    简介 websocket-multiplex-client 是一个基于 WebSocket 协议的包,可以在浏览器和 Node.js 应用中使用。它可以通过向 WebSocket 服务器发送多个信道来...

    4 年前
  • NPM包 WebSocket-NATS 使用教程

    什么是 WebSocket-NATS? WebSocket-NATS 是一个基于 WebSocket 协议和 NATS 协议的 JavaScript 库,用于实现客户端和服务器之间的实时消息传递。

    4 年前
  • 使用 WebSocket-Pull-Stream 的方法

    WebSocket-Pull-Stream作为一种基于WebSocket的客户端和服务器的集成库,并且构建了一个双向流管道,允许节点与数据流之间进行交互,以供前端用于实现浏览器和Node.js之间的数...

    4 年前
  • npm 包 websocket-rails-node 使用教程

    前言 在现代化的互联网应用程序中,实时通信已经成为了必不可少的功能之一。而 Websocket 技术就是实现实时通信的一种方式。本文就介绍一个使用 npm 包 websocket-rails-node...

    4 年前
  • npm 包 webservicer 使用教程

    介绍 webservicer 是一个适用于前端开发的 npm 包,它是一个随手可用的代码片段服务平台,可以让开发者快速创建、分享、搜索和发现代码片段。 webservicer 为前端开发提供了丰富的代...

    4 年前
  • npm 包 websheets 使用教程

    什么是 websheets websheets 是一款使用 Node.js 开发的 npm 包,主要用于在前端应用中从 Google Sheets 中读取和更新数据。

    4 年前
  • npm 包 websheets-core 使用教程

    本文将介绍如何使用 npm 包 websheets-core 来生成基于 Google Sheets 的动态数据网站。 websheets-core 简介 websheets-core 是一个 nod...

    4 年前
  • npm包 websheets-engine 使用教程

    在前端开发中,使用npm包是非常普遍的。其中,websheets-engine是一个非常优秀的npm包,它是一个基于Node.js的开源web应用程序,用于处理和管理电子表格数据。

    4 年前

相关推荐

    暂无文章