使用Nodejs+mongodb开发地图瓦片服务器

原先地图瓦片服务器采用的是arcgisserver发布的地图服务并进行切片,但ags发布的地图服务很占内存,发布太多的话服务器压力很大。再一个就是ags价太高了。

学习Nodejs之后,发现这是一个可以开发高并发服务器,类似游戏服务器、视频聊天服务器等。因此想如果用它来开发一个地图服务器也是一个不错的想法。

我的设计思路是这样的:

1)mongodb采用集合-文档来存储地图瓦片文件。在mongodb1.8版本以后文档最大可存储16MB,由于地图瓦片不可能太大,因此采用文档来存储而不是大文件存储方式。

   集合以底图或专题图为单位来存储,意思就是每个集合代表一个地图瓦片服务,存储这个地图服务所有级别的瓦片数据,当然了,要有一个可以用来索引的字段,我采用的是X-Y-Z的形式来用为文档的key。

2)mongodb提供有nodejs的驱动程序,nodejs可以访问mongodb数据库。

3)nodejs提供一个getimage的路由供外部来访问地图瓦片数据,参数有LAYER,X,Y,Z

     LAYER: 图层名称,即mongodb集合名称。

     X,Y,Z:  采用的是google地图的瓦片编码规则。

 

 

 

转载于:https://www.cnblogs.com/janehlp/p/3479651.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Node.js 和 MongoDB 构建进销存系统的数据表可以让你轻松地处理数据操作和管理。下面是一个基本的示例,展示如何使用 Node.js 和 MongoDB 创建、查询和更新进销存系统的数据表。 首先,确保你已经安装了 Node.js 和 MongoDB,并在项目文件夹中初始化了 Node.js 项目。 1. 连接到 MongoDB 数据库: ```javascript const mongoose = require('mongoose'); // 连接到 MongoDB 数据库 mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true, }); // 创建数据库连接 const db = mongoose.connection; // 监听连接是否成功 db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function () { console.log('成功连接到数据库!'); }); ``` 2. 创建产品模型: ```javascript const mongoose = require('mongoose'); // 创建产品模型 const productSchema = new mongoose.Schema({ name: String, price: Number, quantity: Number, category: String, supplier: String, }); const Product = mongoose.model('Product', productSchema); ``` 3. 创建销售记录模型: ```javascript const mongoose = require('mongoose'); // 创建销售记录模型 const saleSchema = new mongoose.Schema({ product_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Product' }, sale_date: Date, quantity: Number, amount: Number, customer: String, }); const Sale = mongoose.model('Sale', saleSchema); ``` 4. 创建进货记录模型: ```javascript const mongoose = require('mongoose'); // 创建进货记录模型 const purchaseSchema = new mongoose.Schema({ product_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Product' }, purchase_date: Date, quantity: Number, cost: Number, supplier: String, }); const Purchase = mongoose.model('Purchase', purchaseSchema); ``` 5. 插入数据到产品表: ```javascript const product = new Product({ name: 'Product 1', price: 10, quantity: 100, category: 'Category 1', supplier: 'Supplier 1', }); product.save(function (err, savedProduct) { if (err) { console.error(err); } else { console.log('产品已保存:', savedProduct); } }); ``` 6. 查询产品列表: ```javascript Product.find({}, function (err, products) { if (err) { console.error(err); } else { console.log('产品列表:', products); } }); ``` 7. 更新产品信息: ```javascript Product.updateOne( { _id: 'product_id' }, { price: 15 }, function (err, result) { if (err) { console.error(err); } else { console.log('产品已更新:', result); } } ); ``` 这只是一个简单的示例,你可以根据你的具体需求和数据模型设计更复杂的数据表和操作。使用 Node.js 和 MongoDB,你可以轻松地创建和管理进销存系统的数据表,并进行各种数据操作和查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值