📜  openseamap nodejs github - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:18.270000             🧑  作者: Mango

OpenSeaMap Node.js Github - 让地图更加开放

介绍

OpenSeaMap 是一个开放的海图项目,旨在为全球的航海者提供尽可能准确的海图数据。而 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,具有轻量、高效、可扩展等特点。两者相结合可以为海图和航海者带来更加精确、自由和方便的航海体验。

OpenSeaMap Node.js Github 是一个基于 Node.js 的开放海图库,通过开源协作,将 OpenSeaMap 库曝光给更多的程序员,提供更多的自由和可定制性。

安装

通过下列命令可以快速安装 OpenSeaMap Node.js Github:

npm install openseamap
如何使用

OpenSeaMap Node.js Github 包含两个核心部分 clientserver,可根据需要选择并使用它们。

client

OpenSeaMap Node.js Github 的 client 提供了跨域请求海图数据的接口,可以被使用在 Web 端、移动端或其他项目上。

const openseamap = require('openseamap');

const options = {
    format: 'json',
    bbox: [5.5, 47, 15, 56]
};
const attribution = '© OpenSeaMap contributors';

openseamap.bbox(options, attribution, (error, data) => {
    if (error) throw error;
    console.log(data);
});

上述代码将返回一个海图的 JSON 对象。

server

OpenSeaMap Node.js Github 的 server 为开发者提供了从本地 Web 服务器获取海图数据的方法,可自建海图服务,提供更多的可自定义性和稳定性。

const express = require('express');
const router = express.Router();
const osm = require('openseamap');

router.get('/tile/:z/:x/:y.png', (request, response) => {
  const {z, x, y} = request.params;
  const options = {  
    format: 'png',
    transparent: true
  };
  const attribution = '© OpenSeaMap contributors';
  
    osm.tile(  
      x, y, z, options, attribution, (error, tileBuffer) => {  
        if (error) {  
          response.status(504).send('Sorry! Unable to fetch data from API.');  
        } else {  
          response.set('Content-Type', 'image/png');  
          response.status(200).send(tileBuffer);  
        }  
      });  
});

const app = express();
app.use('/msc', router);
app.listen(3000);

上述代码将创建一个本地 Web 服务,并使用 openseamap 模块中提供的瓦片获取方法获取海图数据。您可以通过浏览器访问 http://localhost:3000/msc/tile/2/1/1.png 来查看相应的海图信息。

贡献

OpenSeaMap Node.js Github 是一个开源项目,您可以通过 Github 贡献您的代码、文档或其他方面的支持。我们欢迎各类参与!