GIS开发:mysql空间数据导出geojson

使用nodejs,实现将mysql数据库中的空间数据表,导出成geojson的矢量图层文件,保存。
安装fs、wellknow和mysql三个nodejs类库:

let fs = require("fs");
let parset = require('wellknown');
let mysql = require('mysql'); 
//创建mysql的数据库连接
let connection = mysql.createConnection({
 //主机地址 (
host     : 'localhost',
//用户名
user     : 'root',
//密码
password : '******',
//在mysql中创建的数据库名
database : 'database'
});
//连接到数据库
connection.connect();
// var tabletype;
let tabledata = [];

//查询空间坐标的数据,并保存
 const sqlb="select st_ASTEXT(geometry) AS geo from dbname";
connection.query(sqlb, function (error, results, fields) {
    for(let k=0;k<results.length;k++){
      let tst={};
      tst =parset(results[k].geo);
      tabledata.push(tst);
    } 
});

//查询空间数据表中的其他属性字段数据,并保存
let sql="select * from dbname";
connection.query(sql , function (error, results, fields) {
    let dataJson  = results;
    let features=[];
    let name =[];
    let n =0; 
    for(let t in dataJson[0] ) {
        n++;
        name[n] =t;
    }
    //将数据库中的数据,拼接成geojson的格式
    for(let i=0;i<dataJson.length;i++){
        let fdata = {};
        let pdata = {};
        fdata["type"]="Feature";
        fdata["properties"] =pdata;
        for(let j=1;j<name.length-1;j++){
         pdata[name[j]] =dataJson[i][name[j]];
        }
        fdata["geometry"] =tabledata[i];
        features.push(fdata);
    }

 //添加geojson的数据头信息
   var road = [] ;
   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;
   road.push(roaddata);
//保存geojson文件
   var roadjson =JSON.stringify(roaddata);
   fs.writeFileSync('filepath',roadjson);
});

更多文章,请关注公众号查看!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值