nodejs+mp2+mbtiles+实现google底图服务(centos7)

1 安装配置 nodejs + pm2

# 下载nodejs
wget https://nodejs.org/dist/v11.10.0/node-v11.10.0-linux-x64.tar.xz# 解压
chmod +x node-v11.10.0-linux-x64.tar.xz
xz -d node-v11.10.0-linux-x64.tar.xz
tar -xf node-v11.10.0-linux-x64.tar # 修改路径
mv ./node-v11.10.0-linux-x64 /usr/share/node# node npm 文件链接
ln -s /usr/share/node/bin/node /usr/bin/node
ln -s  /usr/share/node/bin/npm /usr/bin/npm# 验证安装
node -v
npm -v# 设置npm淘宝镜像加速
npm config set registry https://registry.npm.taobao.org
#npm install -g cnpm --registry=https://registry.npm.taobao.org# 代理设置
# npm config set proxy http://10.121.5.248:808
# npm config set proxy=http://10.121.5.248:808# 安装pm2
npm install -g pm2# pm2 文件链接
ln -s /usr/share/node/lib/node_modules/pm2/bin/pm2 /usr/local/bin# 运行服务demo
# pm2 start server.js# 查看pm运行情况
# pm2 list# 停止所有
# pm2 stop all# 查看日志
# pm2 logs -f

2 安装git(可以跳过)

# yum 安装git版本管理# yum install git

3 添加 package.json 和server.js

(hithub项目依赖变动不能直接安装运行)

  • package.json
{"name": "mbtile-server","description": "A crazy simple mbtiles server in node","version": "0.0.1","private": false,"dependencies": {"@mapbox/mbtiles": "^0.11.0","express": "^4.17.1",},"engines": {"node": "0.8.x"}
}
  • server.js
var express = require("express"),app = express(),MBTiles = require('@mapbox/mbtiles');if (process.argv.length < 3) {console.log("Error! Missing TILES filename.\nUsage: node server.js TILES [PORT]");process.exit(1);
}var port = 3000;
if (process.argv.length === 4) {port = parseInt(process.argv[3]);
}var mbtilesLocation = String(process.argv[2]).replace(/\.mbtiles/,'') + '.mbtiles';new MBTiles(mbtilesLocation, function(err, mbtiles) {if (err) throw err;app.get('/:z/:x/:y.*', function(req, res) {var extension = req.param(0);switch (extension) {case "png": {mbtiles.getTile(req.param('z'), req.param('x'), req.param('y'), function(err, tile, headers) {if (err) {res.status(404).send('Tile rendering error: ' + err + '\n');} else {res.header("Content-Type", "image/png")res.send(tile);}});break;}case "grid.json": {mbtiles.getGrid(req.param('z'), req.param('x'), req.param('y'), function(err, grid, headers) {if (err) {res.status(404).send('Grid rendering error: ' + err + '\n');} else {res.header("Content-Type", "text/json")res.send(grid);}});break;}}});});// actually create the server
app.listen(port);

4 安装底图服务并启动

制作mbtiles

  • 安装python
    默认已经安装

  • 获取mbutil

#使用切图工具 tilecache等 切为googleDisk瓦片(各种底图下载工具也可以)如切片路径为google/z/x/y.png# 获取项目源码(python)
git clone git://github.com/mapbox/mbutil.git
cd mbutil
# 获取使用帮助
./mb-util -h
# 将mbtiles 文件导出到 zxy目录:
mb-util tiles.mbtiles google# 将zxy目录导入到 `mbtiles` 文件
mb-util gooole tiles.mbtiles

启动

# npm 安装依赖
npm i
# 启ss
# node方式 启动
# server.js +filename+ port
#node server.js tile.mbtiles 4000# pm2方式 启动
# server.js +filename+ port
pm2 start server.js tiles.mbtiles 4000

5 开放端口

# 防火墙开放端口
firewall-cmd --zone=public --add-port=4000/tcp --permanent# 重新加载防火墙
firewall-cmd --reload

6 验证服务

。。。。

nodejs+mp2+mbtiles+实现google底图服务(centos7)相关推荐

  1. nodejs 调用微服务器_无服务器NodeJS:构建下一个微服务的快速,廉价方法

    nodejs 调用微服务器 by Filipe Tavares 由Filipe Tavares 无服务器NodeJS:构建下一个微服务的快速,廉价方法 (Serverless NodeJS: the ...

  2. Google Play服务中的人脸检测

    资料来源:Face Detection in Google Play services 从Google Play服务版本7.8开始,提供一套更快更优秀的人脸检测的接口.这套接口在各种角度及各表情的脸部 ...

  3. 编译包含Google Play服务App的SDK版本问题

    编译包含Google Play服务App的SDK版本问题 错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFocus ...

  4. Google https服务被屏蔽

    根据Google透明度报告显示,从上周(5月27日)开始,Google的部分服务开始被屏蔽,其中最主要的是HTTPS搜索服务和Google登录服务,所有版本的Google都受到影响,包括Google. ...

  5. GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件

    GMaps.js 功能 除了添加指定经纬度的标准地图之外,GMaps.js 还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5 geolocation),定义路线,绘制折线,并且实现 ...

  6. 使用Google Play服务的Android定位

    Welcome to android location using google play services example. Today we will learn how to use Googl ...

  7. 小米手机任意版本MIUI安装Google Play服务

    声明:因年代久远,本文方法已失效. 2022-05-17:如有需要,可以试下直接下载安装gmail,因本人无测试环境,不保证可行 链接:https://share.weiyun.com/OknKLIC ...

  8. 判断手机是否支持google play服务

    android开发报错 Unable to get provider com.google.firebase.provider.FirebaseInitProvider,classnotfound 或 ...

  9. Android使用Google Map服务 - 根据GPS信息在地图上定位

    Android使用Google Map服务 - 根据GPS信息在地图上定位 自暑假7月7日开始,到今天的8月7日,整个一个月,我总算是学到了Google Map这部分的内容.原本挺兴奋的,却被注册ap ...

  10. Android从零开始:Google Play服务

    Google Play服务库使Android开发人员可以轻松连接并使用Google支持的功能,并向后兼容新功能. 使用Google Play服务有两个主要部分,即Google服务后端和客户端应用. 在 ...

最新文章

  1. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)
  2. 三步更改win7开机密码
  3. leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法
  4. how to change logo in ae template
  5. 如何用python画饼图_Python中的五颜六色的饼状图!(一)
  6. 云小课|MRS基础原理之ClickHouse组件介绍
  7. C语言之字符串探究(一):字符串与字符数组
  8. 大数据之_数据采集Flume_Flume介绍---Flume工作笔记001
  9. 《程序是怎样跑起来的》七
  10. CCS软件的基础使用(以点灯为例)
  11. python画猫咪老师_简笔画教程:教你画猫咪老师
  12. 国内PC版64位谷歌浏览器离线下载安装地址
  13. 1)华为手机使用电脑批量管理联系人 - 2)华为云空间联系人同步到手机 - 3)华为手机导入联系人列表
  14. linux wifi自动消失,linux没有wifi
  15. jenkins自动打包并向Harbor推送镜像
  16. bitnami redmine 4 windows一键式版本安装企业微信插件方法
  17. 单片机 I2C操作笔记——以 AT24C04为例
  18. SpringMVC处理器映射器HandlerMapping
  19. DNS 服务与邮件服务器应用--配置DNS正向解析与反向解析
  20. 信创操作系统--麒麟Kylin桌面版 (项目七 网络连接:有线、无线网络)

热门文章

  1. python读取pcd文件_PCL读取PCD文件的数据
  2. 用php实现基本功能,php实现文件管理与基础功能操作的方法
  3. 赛门铁克完成收购Blue Coat,任命Greg Clark为CEO
  4. 用计算机弹国王与乞丐,国王与乞丐 MIDI File Download :: MidiShow
  5. 遥感图像几何校正 ENVI
  6. 使用tornado的异步非阻塞
  7. 如何关闭eslint相关规则
  8. 笔记本辐射与日常电器辐射对比
  9. 批发商/分销商会有一波向B2B转型的浪潮
  10. 基金指数温度怎么算_指数温度计算方法