nodejs+mp2+mbtiles+实现google底图服务(centos7)
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)相关推荐
- nodejs 调用微服务器_无服务器NodeJS:构建下一个微服务的快速,廉价方法
nodejs 调用微服务器 by Filipe Tavares 由Filipe Tavares 无服务器NodeJS:构建下一个微服务的快速,廉价方法 (Serverless NodeJS: the ...
- Google Play服务中的人脸检测
资料来源:Face Detection in Google Play services 从Google Play服务版本7.8开始,提供一套更快更优秀的人脸检测的接口.这套接口在各种角度及各表情的脸部 ...
- 编译包含Google Play服务App的SDK版本问题
编译包含Google Play服务App的SDK版本问题 错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFocus ...
- Google https服务被屏蔽
根据Google透明度报告显示,从上周(5月27日)开始,Google的部分服务开始被屏蔽,其中最主要的是HTTPS搜索服务和Google登录服务,所有版本的Google都受到影响,包括Google. ...
- GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件
GMaps.js 功能 除了添加指定经纬度的标准地图之外,GMaps.js 还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5 geolocation),定义路线,绘制折线,并且实现 ...
- 使用Google Play服务的Android定位
Welcome to android location using google play services example. Today we will learn how to use Googl ...
- 小米手机任意版本MIUI安装Google Play服务
声明:因年代久远,本文方法已失效. 2022-05-17:如有需要,可以试下直接下载安装gmail,因本人无测试环境,不保证可行 链接:https://share.weiyun.com/OknKLIC ...
- 判断手机是否支持google play服务
android开发报错 Unable to get provider com.google.firebase.provider.FirebaseInitProvider,classnotfound 或 ...
- Android使用Google Map服务 - 根据GPS信息在地图上定位
Android使用Google Map服务 - 根据GPS信息在地图上定位 自暑假7月7日开始,到今天的8月7日,整个一个月,我总算是学到了Google Map这部分的内容.原本挺兴奋的,却被注册ap ...
- Android从零开始:Google Play服务
Google Play服务库使Android开发人员可以轻松连接并使用Google支持的功能,并向后兼容新功能. 使用Google Play服务有两个主要部分,即Google服务后端和客户端应用. 在 ...
最新文章
- 安卓开发笔记——自定义广告轮播Banner(实现无限循环)
- 三步更改win7开机密码
- leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法
- how to change logo in ae template
- 如何用python画饼图_Python中的五颜六色的饼状图!(一)
- 云小课|MRS基础原理之ClickHouse组件介绍
- C语言之字符串探究(一):字符串与字符数组
- 大数据之_数据采集Flume_Flume介绍---Flume工作笔记001
- 《程序是怎样跑起来的》七
- CCS软件的基础使用(以点灯为例)
- python画猫咪老师_简笔画教程:教你画猫咪老师
- 国内PC版64位谷歌浏览器离线下载安装地址
- 1)华为手机使用电脑批量管理联系人 - 2)华为云空间联系人同步到手机 - 3)华为手机导入联系人列表
- linux wifi自动消失,linux没有wifi
- jenkins自动打包并向Harbor推送镜像
- bitnami redmine 4 windows一键式版本安装企业微信插件方法
- 单片机 I2C操作笔记——以 AT24C04为例
- SpringMVC处理器映射器HandlerMapping
- DNS 服务与邮件服务器应用--配置DNS正向解析与反向解析
- 信创操作系统--麒麟Kylin桌面版 (项目七 网络连接:有线、无线网络)