日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs+mp2+mbtiles+实现google底图服务(centos7) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

nodejs+mp2+mbtiles+實(shí)現(xiàn)google底圖服務(wù)(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# 驗(yàn)證安裝 node -v npm -v# 設(shè)置npm淘寶鏡像加速 npm config set registry https://registry.npm.taobao.org #npm install -g cnpm --registry=https://registry.npm.taobao.org# 代理設(shè)置 # 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# 運(yùn)行服務(wù)demo # pm2 start server.js# 查看pm運(yùn)行情況 # pm2 list# 停止所有 # pm2 stop all# 查看日志 # pm2 logs -f

2 安裝git(可以跳過)

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

3 添加 package.json 和server.js

(hithub項(xiàng)目依賴變動(dòng)不能直接安裝運(yùn)行)

  • 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 安裝底圖服務(wù)并啟動(dòng)

制作mbtiles

  • 安裝python
    默認(rèn)已經(jīng)安裝

  • 獲取mbutil

#使用切圖工具 tilecache等 切為googleDisk瓦片(各種底圖下載工具也可以)如切片路徑為google/z/x/y.png# 獲取項(xiàng)目源碼(python) git clone git://github.com/mapbox/mbutil.git cd mbutil # 獲取使用幫助 ./mb-util -h # 將mbtiles 文件導(dǎo)出到 zxy目錄: mb-util tiles.mbtiles google# 將zxy目錄導(dǎo)入到 `mbtiles` 文件 mb-util gooole tiles.mbtiles

啟動(dòng)

# npm 安裝依賴 npm i # 啟ss # node方式 啟動(dòng) # server.js +filename+ port #node server.js tile.mbtiles 4000# pm2方式 啟動(dòng) # 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 驗(yàn)證服務(wù)

。。。。

總結(jié)

以上是生活随笔為你收集整理的nodejs+mp2+mbtiles+实现google底图服务(centos7)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。