用js将geojson转换成WKT格式并插入到数据库

用js将geojson转换成WKT格式并插入到数据库

var fs = require("fs");
var mysql = require("mysql");
var Geojson2wkt = require("Geojson2Wkt");var connection = mysql.createConnection({host: "172.16.2.252",port: 3316,user: "root",password: "Wang4995",database: "point"
});connection.connect();// 定义表名
var tableName = "zy_plant"; // 替换为你想要的表名// Read JSON file
fs.readFile("./zy20240110.json", { encoding: "utf-8" }, (err, data) => {if (err) {console.error(err);return;}let jsonobj = JSON.parse(data);var features = jsonobj.features;// Extract properties from the first featurevar properties = features[0].properties;// Create table SQL statementvar createTableSQL = "CREATE TABLE IF NOT EXISTS " + tableName + " (id INT AUTO_INCREMENT PRIMARY KEY, ";// Iterate through properties and add columns to the SQL statementfor (var key in properties) {if (properties.hasOwnProperty(key)) {createTableSQL += key + " VARCHAR(255), ";}}createTableSQL += "geom GEOMETRY);";// Execute create table SQL statementconnection.query(createTableSQL, (err, results) => {if (err) {console.error(err);return;}console.log("Table " + tableName + " created or already exists.");var insertedCount = 0;// Iterate through features and insert data into the tablefor (var i = 0; i < features.length; i++) {var feature = features[i];var insertData = [];var insertedFields = [];// Iterate through properties and add values to insertDatafor (var key in properties) {if (feature.properties.hasOwnProperty(key)) {insertData.push("'" + feature.properties[key] + "'");insertedFields.push(key);}}// Add geometry datavar geometryWKT = Geojson2wkt.convert(feature.geometry);insertData.push("ST_GeomFromText('" + geometryWKT + "')");insertedFields.push("geom");// Construct insert SQL statementvar insertSQL = "INSERT INTO " + tableName + " (" + insertedFields.join(", ") + ") VALUES (" + insertData.join(", ") + ")";// Execute insert SQL statementconnection.query(insertSQL, (err, results) => {if (err) {console.error(err);} else {insertedCount++;console.log(`Inserted data for fields: ${insertedFields.join(", ")}`);console.log(`Total inserted records: ${insertedCount}`);}});}// Close database connectionconnection.end();});
});
``

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python string模块中Template的substitute()使用

一、模板字符串 模板字符串提供了由 PEP 292 所描述的更简便的字符串替换方式。 模板字符串的一个主要用例是文本国际化 (i18n)&#xff0c;因为在此场景下&#xff0c;更简单的语法和功能使得文本翻译过程比使用 Python 的其他内置字符串格式化工具更为方便。 作为基于模板字符…

实现LCM在docker之间的通信

目录 1.docker容器互联 新建网络 连接容器 2.设置环境变量 3.在两个docker之间实现通信 1.docker容器互联 新建网络 $ docker network create -d bridge test-net 连接容器 运行一个容器并连接到新建的 test-net 网络: $ docker run -itd --name lcm_1 --network tes…

通过iFrame嵌入Grafana页面或pannel

前言 在当前数据驱动的时代&#xff0c;有效地可视化和监控关键性能指标变得至关重要。Grafana&#xff0c;作为一个开源的监控解决方案&#xff0c;提供了强大的功能来呈现和分析数据&#xff0c;从而帮助用户及时洞察和响应各种情况。随着技术的不断发展&#xff0c;将这些信…

docker 容器添加指定网络地址

docker 容器添加指定网络地址 在搭建halo博客时&#xff0c;准备让 halo、mysql8.1、nginx 三个容器在同一个网段中&#xff0c;并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下&#xff1a; nginx …

Salesforce lightning优势介绍

今天我要给大家说说&#xff0c;Salesforce的两个版本&#xff1a;第一代Classic UI&#xff0c;和13年以来为迎接移动化趋势而推出的新Lightning UI。Classic马上就要和我们说88了&#xff0c;那Lightning究竟有哪些大杀器让我们无法抗拒呢&#xff1f;让我们一探究竟吧。 首先…

直播美颜SDK开发指南:从零开始搭建主播美颜工具

本篇文章&#xff0c;笔者将带你从零开始&#xff0c;一步步搭建主播美颜工具的开发环境&#xff0c;介绍关键技术和步骤&#xff0c;助你打造出令人惊艳的直播美颜SDK。 第一步&#xff1a;环境搭建 在开始SDK的开发之前&#xff0c;确保你的开发环境准备就绪。选择一个适合的…

九个超级好用的 Javascript 技巧

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 前言 在实际的开发工作过程中&#xff0c;积累了一些常见又超级好用的 Javascript 技巧和代码片段&#xff0c;包括整理的其他大神的 JS 使用技巧&…

挑战Transformer的新架构Mamba解析以及Pytorch复现

今天我们来详细研究这篇论文“Mamba:具有选择性状态空间的线性时间序列建模” Mamba一直在人工智能界掀起波澜&#xff0c;被吹捧为Transformer的潜在竞争对手。到底是什么让Mamba在拥挤的序列建中脱颖而出? 在介绍之前先简要回顾一下现有的模型 Transformer:以其注意力机制而…

PM3-PM002-学习笔记

----------本学习笔记说明&#xff0c;在看本文章前请认真看完学习视频相关内容-------------- 说明—>PM002—>表示题号 —>选择后表示—>答案 PM002-01. 选择&#xff1a;质量保证过程PM002-02. 选择&#xff1a;项目经理和项目管理团队PM002-03. 选择&#xff…

一文读懂数字工厂管理系统解决方案

随着科技的飞速发展&#xff0c;数字化转型已成为企业提升竞争力、优化运营管理的必由之路。数字工厂管理系统作为这一转型的核心组成部分&#xff0c;正逐渐受到业界的广泛关注。本文将深入探讨数字工厂管理系统解决方案的核心理念、功能模块、实施步骤及其对企业发展的影响。…

前端基础 keep-alive的使用(Vue)

用法 keep-alive是Vue内置的一个组件&#xff0c;可以使被包含的组件保留状态&#xff0c;避免重新渲染 <keep-alive><component><!-- 该组件将被缓存&#xff01; --></component> </keep-alive> props include - 字符串或正则表达&#xff0…

2024 1.9 Spark_SQL , 数据清洗API , 写出操作

目录 一. DataFrame 详解 1. 数据清洗API 1.去重 : 2. 去除空: 3. 填充替换 : 2. SparkSQL的shuffle分区设置 3 . SparkSQL 数据写出操作 3.1 写出到文件系统 3.2 写出到数据库 一. DataFrame 详解 1. 数据清洗API 1.1 去重 : DropDupilcates : init_df.dropDuplicates().…

Kubernetes 核心实战之三(精华篇 3/3)

文章目录 6、Ingress ★6.1 安装 Ingress6.2 访问6.3 安装不成功的bug解决6.4 测试使用6.4.1 搭建测试环境6.4.2 配置 Ingress的规则6.4.3 测试I6.4.4 测试II6.4.5 路径重写6.4.6 限流 7. Kubernetes 存储抽象7.1 NFS 搭建7.2 原生方式 数据挂载7.3 PV 和 PVC ★7.3.1 创建 PV …

语义解析:连接自然语言与机器智能的桥梁

文章目录 01 语义解析的应用场景场景一&#xff1a;场景二&#xff1a; 02 语义解析和大模型的关系 语义解析技术可以提高人机交互的效率和准确性&#xff0c;在自然语言处理、数据分析、智能客服、智能家居等领域都有广泛的应用前景。特别是在大数据时代&#xff0c;语义解析能…

m401a电视盒子

1.1 刷机教程 魔百盒M401A成功刷入armbian_m401a刷armbian-CSDN博客 https://blog.csdn.net/xiaokai1999/article/details/129623435 江苏版M401A原版 刷机ARMBIAN注意要点 http://www.taodudu.cc/news/show-5341375.html?actiononClick 1.2 查看系统内核 cat /etc/ophub-…

2024年甘肃省职业院校技能大赛 “信息安全管理与评估”赛项样题卷①

2024年甘肃省职业院校技能大赛 高职学生组电子与信息大类信息安全管理与评估赛项样题 第一阶段&#xff1a;第二阶段&#xff1a;模块二 网络安全事件响应、数字取证调查、应用程序安全第二阶段 网络安全事件响应第一部分 网络安全事件响应第二部分 数字取证调查第三部分 应用程…

[Linux进程(一)] 什么是进程?PCB的底层是什么?以及进程标识符pid与ppid

文章目录 1、前言2、描述进程 — PCB(os怎么管理进程呢)3、查看进程3.1 方法一3.2 方法二 4、系统调用获取进程标示符(PID)4.1 获取进程的ID4.2 获取进程的父进程ID 5、系统调用创建子进程-fork 1、前言 大家经常都在讲进程&#xff0c;而它到底是什么呢&#xff1f; 这里给大…

Android逆向学习(六)绕过app签名校验,通过frida,io重定向(上)

Android逆向学习&#xff08;六&#xff09;绕过app签名校验&#xff0c;通过frida&#xff0c;io重定向&#xff08;上&#xff09; 一、写在前面 这是吾爱破解正己大大教程的第五个作业&#xff0c;然后我的系统还是ubuntu&#xff0c;建议先看一下上一个博客&#xff0c;关…

linux: netstat 与 ss 用法详解

文章目录 netstat描述语法参数例子 ss描述语法参数例子 总结 netstat 描述 内核中访问网络连接状态及其相关信息的程序&#xff0c;它能提供 TCP 连接&#xff0c;TCP 和 UDP 监听&#xff0c;进程内存管理的相关报告 语法 netstat [选项] usage: netstat [-vWeenNcCF] [&l…

聊聊 Java 集合框架中的Arrays

Arrays 和 Collections是分别操作数组和集合的两个工具类。今天就来对 Arrays 中的内容作个总结。 一、Arrays 类概述 Arrays 类位于 java.util包中。Arrays 继承 Object java.lang.Object↳ java.util.ArraysArrays 类中的静态方法可以对数组进行排序、查询、搜索等等操作。…