当前位置: 首页 > news >正文

.netcore + postgis 保存地图围栏数据

一、数据库字段

字段类型选择(Type)
在这里插入图片描述
设置对象类型为:geometry
在这里插入图片描述

二、前端传递的Json格式转换

前端传递围栏的各个坐标点数据如下:

{"AreaRange": [{"lat": 30.123456,"lng": 120.123456},{"lat": 30.123456,"lng": 120.654321},{"lat": 30.654321,"lng": 120.654321},{"lat": 30.654321,"lng": 120.123456}]
}

后端使用Geometry类型,ORM本项目使用了SqlSugar

/// <summary>
/// 区域围栏
/// </summary>
[SugarColumn(ColumnName= "arearange")]
public Geometry? AreaRange { get; set; }
public class MapProperty
{/// <summary>/// Latitude的简写,表示纬度/// </summary>public double lat { get; set; }/// <summary>/// Longtitude的简写,表示经度/// </summary>public double lng { get; set; }
}

后端Json转Geometry ( Polygon)多边形或者线

public static Polygon ConvertToPolygon(List<MapProperty> data)
{if (data == null || data.Count < 3){throw new ArgumentException("至少需要三个点才能创建多边形");}// 创建几何工厂GeometryFactory factory = new GeometryFactory(new PrecisionModel(), 4326);// 将 List<MapProperty> 转换为 List<Coordinate>List<Coordinate> coordinates = data.Select(mp => new Coordinate(mp.lng, mp.lat)).ToList();// 添加第一个点以闭合多边形coordinates.Add(coordinates[0]);// 创建线性环LinearRing linearRing = factory.CreateLinearRing(coordinates.ToArray());// 创建多边形Polygon polygon = factory.CreatePolygon(linearRing);return polygon;
}
public static LineString ConvertToLineString(List<MapProperty> data){if (data == null || data.Count < 2){throw new ArgumentException("至少需要两个点才能创建多段线");}// 创建几何工厂GeometryFactory factory = new GeometryFactory();// 将 List<MapProperty> 转换为 List<Coordinate>List<Coordinate> coordinates = data.Select(mp => new Coordinate(mp.lng, mp.lat)).ToList();// 创建多段线LineString lineString = factory.CreateLineString(coordinates.ToArray());return lineString;}

保存入库

var area = GeoJsonHelper.ConvertToPolygon(request.AreaRange);
CommunityExtEntity ext = new CommunityExtEntity()
{AreaRange = area,
};
await _app.Insertable(ext).ExecuteCommandAsync();

相关文章:

.netcore + postgis 保存地图围栏数据

一、数据库字段 字段类型选择(Type) 设置对象类型为&#xff1a;geometry 二、前端传递的Json格式转换 前端传递围栏的各个坐标点数据如下&#xff1a; {"AreaRange": [{"lat": 30.123456,"lng": 120.123456},{"lat": 30.123456…...

【AI图像生成网站Golang】项目介绍

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与调试(等待更新) 简介 本教程将手把手教你如何从零开始构建一个简单的AI图像生成网站。网站主要包含用户注册、图像生成、分类管理等…...

对称加密算法DES的实现

一、实验目的 1、了解对称密码体制基本原理 2、掌握编程语言实现对称加密、解密 二、实验原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位&#xff0c;产生最大 64 位的分组大小。这是一个迭代的分组密码&#xff0c;使用称为 Feistel 的技术&#xff0c;其中将加密…...

Spring Boot 启动时修改上下文

Spring Boot 启动时修改上下文 为了让项目在启东时&#xff0c;加载到封装的JAR中的国际化文件在封装JAR是增加以下配置类可用于更改启动上下文中的信息依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoco…...

传奇996_19——常用函数

打印 打印到公告 lua版 sendmsg(*actor*, ConstCfg.notice.own, {"Msg":"<font color\#ff0000\>即将更新属性2222&#xff01;&#xff01;&#xff01;</font>","Type":9}) sendmsg(*actor*, 1, {"Msg":"<fon…...

计算机毕业设计Python+Neo4j知识图谱医疗问答系统 大模型 机器学习 深度学习 人工智能 大数据毕业设计 Python爬虫 Python毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

【Python】如何设置VSCode中的Pylint,消除各种没有必要的警告

前言 最近打开VSCode&#xff0c;编辑之前创建的Python项目&#xff0c;突然发现多了一堆报错和警告&#xff0c;如下图所示。 就非常吓人&#xff0c;因为之前这个项目是没有任何报错的&#xff0c;我赶紧试着运行了一下&#xff0c;还好&#xff0c;可以正常运行&#xff0c;…...

游戏引擎学习第14天

视频参考:https://www.bilibili.com/video/BV1iNUeYEEj4/ 1. 为什么关注内存管理&#xff1f; 内存分配是潜在的失败点&#xff1a; 每次进行内存分配&#xff08;malloc、new等&#xff09;时&#xff0c;都可能失败&#xff08;例如内存不足&#xff09;。这种失败会引入不稳…...

关于mysql中的锁

mysql中包含的锁分为&#xff1a; 一、全局锁 二、表锁 三、行锁 一、全局锁 全局锁的力度是最大的&#xff0c;全局锁对整个数据库实例加锁&#xff0c;加锁后整个实例就处于只读状态&#xff0c;后续的DML的写语句&#xff0c;DDL语句&#xff0c;已经更新操作的事务提交语句…...

机器学习-4:机器学习的建模流程

机器学习的建模流程 流程为&#xff1a; 原始数据 --> 数据预处理 --> 特征工程 --> 建模 --> 验证。 原始数据收集 所有AI或机器学习的基础就是数据&#xff0c;没有数据就什么都做不了&#xff0c;在搭建一个系统之前首要考虑的就是有没有足够多的数据可以支撑这…...

Android 6年经验面试总结 2024.11.15

背景&#xff1a;深圳 面过12家中大厂、4家中小厂&#xff0c;通过4家中大厂&#xff0c;2家offer。 针对六年的求职面试总结&#xff1a;项目经验70%30%基础&#xff08;基础应该必会&#xff09; 对于上来就问八股文的公司&#xff0c;对于已经工作了5年以上的开发来说&…...

R语言数据分析可视化——summarytools包的使用

R语言中的summarytools包通过提供能够用最少的代码生成数据全面摘要的功能,使数据分析更加简单。summarytools包提供了一种简单的方法来生成数据集的摘要统计信息,包括描述性统计、频率表、交叉表、缺失值、异常值、相关性、线性回归、ANOVA、卡方检验等。本文将介绍如何使用…...

转型一年半,虎牙直播的第二增长曲线喜忧参半

文&#xff1a;互联网江湖 作者&#xff1a;刘致呈 最近&#xff0c;虎牙公司&#xff08;NYSE:HUYA&#xff09;公布了2024年第三季度财报。 表现怎么样呢&#xff1f;从财务数据上看&#xff0c;这份成绩单有点不尽人意。 报告期内&#xff0c;虎牙实现营收15.38亿元&…...

makefile笔记

makefile 在 Makefile 中&#xff0c;预定义的变量&#xff08;也称为内置变量&#xff09;提供了对构建过程中的默认值和特殊值的访问。这些变量通常由 Make 自动设置&#xff0c;并且可以覆盖它们以改变 Make 的行为。下面是 Make 环境中常见的几个内置变量及其用途&#xf…...

Rewar Model的输出(不包含训练)

这里写自定义目录标题 介绍模型推理的输出过程方案原始Token输出RM输出&#xff08;回归任务&#xff09; 介绍 奖励函数模型 (Reward Model) 是人工智能 (AI) 中的一种方法&#xff0c;模型因其对给定提示的响应而获得奖励或分数。现在的文章清一色的讲解RM的训练&#xff0c…...

Python调用API翻译Excel中的英语句子并回填数据

一、问题描述 最近遇到一个把Excel表中两列单元格中的文本读取&#xff0c;然后翻译&#xff0c;再重新回填到单元格中的案例。大约有700多行&#xff0c;1400多个句子&#xff0c;一个个手动复制粘贴要花费不少时间&#xff0c;而且极易出错。这时&#xff0c;我们就可以请出…...

SQL面试题——抖音SQL面试题 最大在线用户数

最大在线用户数 下面的数据记录了一个直播平台上用户进入平台和离开平台的情况 +---+-------------------+-----+ | id| etime| type| +---+-------------------+-----+ | 1|2021-06-10 10:00:00|enter| | 1|2021-06-10 19:00:00|leave| | 2|2021-06-10 11:0…...

前端知识点---Window对象(javascript)了解

Window对象 在JavaScript中&#xff0c;当你在非严格模式下的全局作用域中使用this时&#xff0c;它会引用全局对象。在浏览器环境中&#xff0c;这个全局对象就是Window。 01什么是 Window 对象&#xff1f; Window 是浏览器提供的一个全局对象&#xff0c;它代表了浏览器的…...

llama factory lora 微调 qwen2.5 7B Instruct模型

项目背景 甲方提供一台三卡4080显卡 需要进行qwen2.5 7b Instruct模型进行微调。以下为整体设计。 要使用 LLaMA-Factory 对 Qwen2.5 7B Instruct模型 进行 LoRA&#xff08;Low-Rank Adapters&#xff09;微调&#xff0c;流程与之前提到的 Qwen2 7B Instruct 模型类似。LoRA …...

类和对象——拷贝构造函数,赋值运算符重载(C++)

1.拷⻉构造函数 如果⼀个构造函数的第⼀个参数是自身类类型的引用&#xff0c;且任何额外的参数都有默认值&#xff0c;则此构造函数也叫做拷贝构造函数&#xff0c;也就是说拷贝构造是⼀个特殊的构造函数。 // 拷贝构造函数//d2(d1) Date(const Date& d) {_year d._yea…...

【手把手】FFmpeg音视频开发从入门到实战:一文吃透音视频同步原理与代码实现(附完整源码)

文章目录第一章 基础必懂&#xff1a;音视频开发的核心概念与FFmpeg框架1.1 别再被封装格式忽悠&#xff1a;MP4、MKV、AVI到底差在哪&#xff1f;1.2 搞懂解码流程&#xff1a;FFmpeg处理音视频的4个核心结构体第二章 深入原理&#xff1a;音视频同步的核心机制2.1 播放器卡顿…...

用快马AI快速原型设计:9·1免费素材库管理界面十分钟搭建指南

最近在帮朋友设计一个免费素材库的管理界面&#xff0c;需求是要快速搭建一个能展示"91免费素材"的网页应用。作为一个经常需要验证设计想法的开发者&#xff0c;我发现用InsCode(快马)平台可以大大缩短原型开发时间。下面分享下我是如何在十分钟内完成这个素材库管理…...

python基于微信小程序的直播带货商品数据分析系统的爬虫可视化

目录需求分析与系统架构设计微信小程序数据爬取方案数据存储与清洗数据分析与可视化系统集成与部署注意事项项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与系统架构设计 明确系统目标为爬取微信小程序直播带货商品数…...

2026必看:八款热门AI编程工具横评

一、AI编程工具榜单综述当下AI技术全面渗透软件开发领域&#xff0c;各类AI编程工具大幅降低了开发门槛、提升了编码效率&#xff0c;成为开发者必备的效率神器。本次横评精选海内外8款主流产品&#xff0c;覆盖AI原生IDE、插件式编程助手等不同形态&#xff0c;全方位盘点各工…...

UniApp多主题开发避坑指南:为什么SCSS+Require比Vuex方案更优雅?

UniApp多主题开发实战&#xff1a;SCSS动态加载方案深度解析与性能优化 在移动应用开发领域&#xff0c;主题切换功能已成为提升用户体验的重要环节。UniApp作为跨平台开发框架&#xff0c;如何实现高效、灵活的主题管理一直是开发者关注的焦点。本文将深入探讨基于SCSS变量与动…...

为ROS开发准备:在拯救者Y7000上搭建Win11+Ubuntu22.04双系统全流程

拯救者Y7000 Win11与Ubuntu22.04双系统配置&#xff1a;ROS开发环境搭建实战手册 在机器人操作系统&#xff08;ROS&#xff09;开发领域&#xff0c;稳定的Linux环境是必不可少的基石。对于使用拯救者Y7000这类高性能笔记本的开发者而言&#xff0c;如何在保留Windows11系统的…...

从零开始:如何为你的深度学习项目选择最合适的开源数据集

从零开始&#xff1a;如何为你的深度学习项目选择最合适的开源数据集 当你站在深度学习项目的起点&#xff0c;面对琳琅满目的开源数据集时&#xff0c;如何做出明智的选择往往决定了项目的成败。数据集不仅是模型训练的"原材料"&#xff0c;更是影响最终性能的关键变…...

用MATLAB复现高斯光束通过双透镜系统:从ABCD矩阵到可视化光斑演变

用MATLAB复现高斯光束通过双透镜系统&#xff1a;从ABCD矩阵到可视化光斑演变 在光学工程和激光技术领域&#xff0c;理解高斯光束在复杂光学系统中的传输特性至关重要。本文将带您一步步实现高斯光束通过双透镜系统的完整MATLAB仿真&#xff0c;从ABCD矩阵理论推导到动态光斑演…...

别再只会用PS修图了!用Python的Richardson-Lucy算法,5分钟搞定模糊老照片修复

用Python拯救模糊老照片&#xff1a;零基础也能上手的Richardson-Lucy算法实战 翻箱倒柜找到一张泛黄的老照片&#xff0c;却发现画面模糊得连人脸都看不清&#xff1f;别急着叹气&#xff0c;更不用花大价钱找专业修图师。今天我要分享一个连Python新手都能轻松上手的黑科技—…...

ai辅助开发:让快马生成智能助手,链接notepad下载与个性化代码推荐

今天想和大家分享一个有趣的实践&#xff1a;如何用AI辅助开发的方式&#xff0c;让Notepad这个老牌文本编辑器焕发新生。我们平时下载Notepad可能只是简单获取软件&#xff0c;但如果结合AI能力&#xff0c;就能把"下载-使用"的流程升级成"智能助手"体验。…...