node连接MySQL,查询数据转换为geojson

//导入(npm install) fs mysql wellknown
var fs = require(“fs”);
var parset = require(‘wellknown’);
var mysql = require(‘mysql’);
const SqlString = require(‘mysql/lib/protocol/SqlString’);
const { table } = require(“console”);
const { parse } = require(“path”);
//创建连接
var connection = mysql.createConnection({
//主机地址 (默认:localhost)
host : ‘localhost’,
//用户名
user : ‘root’,
//密码
password : ‘123456’,
//在mysql中创建的数据库名
database : ‘redmine’
});
//连接到数据库
connection.connect();
var tabledata = [];
//查询geometry字段的所有数据 ==tabledata
var sqlb=“select st_ASTEXT(geometry) AS geo from testb”;
connection.query(sqlb, function (error, results, fields) {
for(var k=0;k<results.length;k++){
var tst={};
tst =parset(results[k].geo);
tabledata.push(tst);
}
});
var sql=“select * from testb”;
connection.query(sql , function (error, results, fields) {
var dataJson = results;
var features=[];
var name =[];
var n =0;
for(var t in dataJson[0] ) {
n++;
name[n] =t;
}
//name 数据库字段名数组,fdata为features对象, pdata为properties对象
for(var i=0;i<dataJson.length;i++){
var fdata = {};
var pdata = {};
fdata[“type”]=“Feature”;
fdata[“properties”] =pdata;
for(var j=1;j<name.length-1;j++){
pdata[name[j]] =dataJson[i][name[j]];
}
fdata[“geometry”] =tabledata[i];
features.push(fdata);
}
var roaddata ={};
roaddata[“type”] =“FeatureCollection”;
roaddata[“name”] =“roadcenter”;
roaddata[“crs”] = { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } };
roaddata[“features”] =features;
var roadjson =JSON.stringify(roaddata);
fs.writeFileSync(’./data/mysql5.geojson’,roadjson);
});

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值