【C#生态园】探索地理信息系统软件套件与库:功能、API和应用
探索地理信息系统:软件套件与库详解
前言
地理信息系统(GIS)是当今世界上广泛使用的技术之一,它以空间数据为基础,能够提供丰富的地理信息分析和可视化功能。在GIS领域,有许多优秀的软件套件和库,可以帮助开发人员处理地理空间数据,进行地图绘制和空间分析。本文将着重介绍几种常用的地理信息系统软件套件以及相关的库。
欢迎订阅专栏:C#生态园
文章目录
- 探索地理信息系统:软件套件与库详解
- 前言
- 1. ArcGIS:一个地理信息系统软件套件
- 1.1 简介
- 1.1.1 核心功能
- 1.1.2 使用场景
- 1.2 安装与配置
- 1.2.1 安装指南
- 1.2.2 基本配置
- 1.3 API 概览
- 1.3.1 地图创建
- 1.3.2 数据分析
- 2. PostGIS:空间数据库扩展,用于PostgreSQL
- 2.1 简介
- 2.1.1 核心功能
- 2.1.2 使用场景
- 2.2 安装与配置
- 2.2.1 安装指南
- 2.2.2 基本配置
- 2.3 API 概览
- 2.3.1 空间数据管理
- 2.3.2 地理查询
- 3. ProjNet:用于处理地理空间数据的库
- 3.1 简介
- 3.1.1 核心功能
- 3.1.2 使用场景
- 3.2 安装与配置
- 3.2.1 安装指南
- 3.2.2 基本配置
- 3.3 API 概览
- 3.3.1 几何对象操作
- 3.3.2 投影转换
- 4. NetTopologySuite:用于空间数据操作的库
- 4.1 简介
- 4.1.1 核心功能
- 4.1.2 使用场景
- 4.2 安装与配置
- 4.2.1 安装方法
- 4.2.2 基本设置
- 4.3 API 概览
- 4.3.1 空间运算
- 4.3.2 空间索引
- 5. SharpMap:一个开源的地理信息系统库
- 5.1 简介
- 5.1.1 核心功能
- 5.1.2 使用场景
- 5.2 安装与配置
- 5.2.1 安装指导
- 5.2.2 基本配置
- 5.3 API 概览
- 5.3.1 地图绘制
- 5.3.2 空间查询
- 6. GeoAPI:用于地理空间数据处理的接口库
- 6.1 简介
- 6.1.1 核心功能
- 6.1.2 使用场景
- 6.2 安装与配置
- 6.2.1 安装指南
- 6.2.2 基本设置
- 6.3 API 概览
- 6.3.1 地理空间操作
- 6.3.2 地理坐标转换
- 总结
1. ArcGIS:一个地理信息系统软件套件
ArcGIS 是一套由美国Esri公司开发的地理信息系统软件套件,为用户提供了丰富的地图制作、数据分析和空间问题解决方案。
1.1 简介
1.1.1 核心功能
ArcGIS 提供了丰富的地理信息处理功能,包括地图制作、空间分析、地理编码、三维可视化等。通过 ArcGIS,用户可以轻松管理地理信息数据,并利用这些数据进行深入的空间分析。
1.1.2 使用场景
ArcGIS 在各种领域都有广泛的应用,包括城市规划、环境保护、资源管理、农业、地质勘探等。用户可以利用 ArcGIS 进行地图制作、地理信息分析和决策支持。
1.2 安装与配置
1.2.1 安装指南
用户可以从 Esri 公司官网下载 ArcGIS 软件,并按照官方安装指南进行安装。通常情况下,ArcGIS 软件需要激活许可证才能正常使用。
1.2.2 基本配置
安装完成后,用户需要进行基本配置,包括设置数据连接、权限管理和地图显示样式等。这些配置可以根据具体需求进行个性化定制。
1.3 API 概览
1.3.1 地图创建
在 ArcGIS 中,用户可以利用 ArcGIS API for JavaScript 来创建地图。以下是一个简单的示例代码:
require(["esri/Map","esri/views/MapView"
], function(Map, MapView) {var map = new Map({basemap: "streets"});var view = new MapView({container: "viewDiv",map: map,center: [-118.805, 34.027],zoom: 13});
});
更多关于地图创建的详细信息,请参考 ArcGIS API for JavaScript。
1.3.2 数据分析
除了地图创建,ArcGIS 还提供了丰富的数据分析功能。用户可以利用 ArcGIS API for Python 进行数据处理和空间分析。以下是一个简单的示例代码:
import arcgis
from arcgis.gis import GISgis = GIS()
map = gis.map("New York, NY")
map.basemap = 'topo'map
更多关于数据分析的详细信息,请参考 ArcGIS API for Python。
2. PostGIS:空间数据库扩展,用于PostgreSQL
2.1 简介
PostGIS 是一个用于 PostgreSQL 的空间数据库扩展,它允许地理信息系统(GIS)对象存储在数据库中,并提供了对这些数据进行复杂地理查询的能力。
2.1.1 核心功能
- 存储和管理地理信息系统对象
- 对地理数据执行空间查询和分析
- 支持地理坐标系转换和投影
2.1.2 使用场景
PostGIS 可以用于开发需要处理地理空间数据的应用程序,例如地图应用、位置分析和物联网系统等。
2.2 安装与配置
2.2.1 安装指南
首先需要安装 PostgreSQL 数据库。然后可以通过以下命令安装 PostGIS:
sudo apt-get update
sudo apt-get install postgis
更多详细的安装指南请参考官方文档:PostGIS Installation
2.2.2 基本配置
安装完成后,需要在 PostgreSQL 中创建空间数据库并添加 PostGIS 扩展:
CREATE DATABASE myspatialdb;
\c myspatialdb
CREATE EXTENSION postgis;
2.3 API 概览
2.3.1 空间数据管理
PostGIS 提供了一组用于管理空间数据的 SQL 函数和类型。例如,可以使用以下 SQL 查询来创建一个包含空间数据的表格:
CREATE TABLE spatial_table (id SERIAL PRIMARY KEY,name VARCHAR(100),geom GEOMETRY(Point, 4326)
);
更多关于空间数据管理的 API 可以参考官方文档:PostGIS Spatial Functions
2.3.2 地理查询
PostGIS 允许执行复杂的地理查询,例如查找两个地理对象之间的距离或者判断一个点是否在一个多边形内部。以下是一个使用 C# 进行地理查询的示例代码:
using Npgsql;
using Dapper;class Program
{static void Main(){using (var conn = new NpgsqlConnection("Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase")){conn.Open();// 查询距离var result = conn.QueryFirstOrDefault<double>(@"SELECT ST_Distance(ST_GeomFromText('POINT(0 0)', 4326),ST_GeomFromText('POINT(1 2)', 4326))");Console.WriteLine($"Distance: {result}");// 判断点是否在多边形内var isInside = conn.QueryFirstOrDefault<bool>(@"SELECT ST_Contains(ST_GeomFromText('POLYGON((0 0, 0 3, 3 3, 3 0, 0 0))', 4326),ST_GeomFromText('POINT(1 1)', 4326))");Console.WriteLine($"Is inside: {isInside}");}}
}
更多关于地理查询的 API 可以参考官方文档:PostGIS Geography Functions
3. ProjNet:用于处理地理空间数据的库
ProjNet 是一个开源的、跨平台的库,用于处理地理空间数据。它提供了丰富的功能和 API,可以用于处理地理坐标、投影转换等操作。
3.1 简介
3.1.1 核心功能
ProjNet 主要用于处理地理空间数据的投影转换、坐标系统操作,提供了丰富的地理信息系统相关功能。其中包括但不限于:
- 地理坐标的转换
- 投影坐标的转换
- 坐标系统的管理
- 空间分析等功能
3.1.2 使用场景
ProjNet 可以被广泛应用于地理信息系统开发、地图制图、GPS 应用、定位服务等领域。
3.2 安装与配置
3.2.1 安装指南
ProjNet 可以通过 NuGet 进行安装,在 Visual Studio 中创建一个新的 .NET Core 或 .NET Framework 项目后,可通过以下命令安装 ProjNet:
dotnet add package ProjNet
3.2.2 基本配置
在项目中引用 ProjNet 后,即可开始使用其丰富的功能和 API。
3.3 API 概览
3.3.1 几何对象操作
ProjNet 提供了一系列几何对象的操作方法,用于处理点、线、面等地理信息对象。下面是一个简单的 C# 实例代码,演示如何使用 ProjNet 创建一个点对象:
using ProjNet.CoordinateSystems;
using ProjNet.CoordinateSystems.Transformations;public class GeometryExample
{public void CreatePoint(){ICoordinateSystem wgs84 = GeographicCoordinateSystem.WGS84;CoordinateTransformationFactory ctFactory = new CoordinateTransformationFactory();ICoordinateTransformation transformation = ctFactory.CreateFromCoordinateSystems(wgs84, projectedCS);double x = 121.4737;double y = 31.2304;double[] point = transformation.MathTransform.Transform(new double[] { x, y });Console.WriteLine($"Projected point: {point[0]}, {point[1]}");}
}
更多关于几何对象操作的详细信息,请参考 ProjNet 文档。
3.3.2 投影转换
ProjNet 提供了丰富的投影转换功能,可以实现不同坐标系之间的互相转换。下面是一个简单的示例,演示如何将 WGS84 坐标转换为 Web Mercator 坐标:
using ProjNet.CoordinateSystems;
using ProjNet.CoordinateSystems.Transformations;public class ProjectionExample
{public void ProjectCoordinates(){ICoordinateSystem wgs84 = GeographicCoordinateSystem.WGS84;ICoordinateSystem webMercator = ProjectedCoordinateSystem.WebMercator;CoordinateTransformationFactory ctFactory = new CoordinateTransformationFactory();ICoordinateTransformation transformation = ctFactory.CreateFromCoordinateSystems(wgs84, webMercator);double x = 121.4737;double y = 31.2304;double[] projectedPoint = transformation.MathTransform.Transform(new double[] { x, y });Console.WriteLine($"Projected point: {projectedPoint[0]}, {projectedPoint[1]}");}
}
以上是 ProjNet 库的简要介绍和部分功能演示,更多详细信息请访问 ProjNet 官方文档。
4. NetTopologySuite:用于空间数据操作的库
NetTopologySuite(NTS)是一个用于空间数据操作的高性能库,它提供了丰富的地理信息系统(GIS)功能和算法。本文将介绍NTS库的核心功能、使用场景、安装与配置方法以及API概览。
4.1 简介
4.1.1 核心功能
NetTopologySuite提供了一系列的空间运算、几何处理和地理空间索引功能。它支持点、线、多边形等几何类型,以及其相关的拓扑关系判断、缓冲区分析等功能。
4.1.2 使用场景
NTS广泛应用于需要进行空间数据处理和分析的项目中,比如地图绘制、位置分析、路径规划等领域。
4.2 安装与配置
4.2.1 安装方法
通过NuGet包管理器可以轻松地将NetTopologySuite集成到C#项目中。在Visual Studio中,可以在包管理控制台中使用以下命令进行安装:
Install-Package NetTopologySuite
4.2.2 基本设置
安装完成后,可以在项目中引用NTS所提供的命名空间,并开始使用其中的类和方法。
4.3 API 概览
4.3.1 空间运算
NetTopologySuite提供了丰富的空间运算功能,例如计算两个几何对象的交集、并集、差集等。以下是一个简单示例,展示了如何使用NTS进行空间运算:
using NetTopologySuite.Geometries;
using NetTopologySuite.Operation.Union;// 创建两个多边形
Polygon poly1 = new Polygon(...);
Polygon poly2 = new Polygon(...);// 计算两个多边形的并集
Geometry union = poly1.Union(poly2);
更多关于空间运算的详细内容可以参考官方文档
4.3.2 空间索引
NTS还支持空间索引功能,通过空间索引可以快速地进行空间查询和分析。以下是一个简单示例,展示了如何创建空间索引并利用索引进行空间查询:
using NetTopologySuite.Index.Strtree;// 创建一个 R 树空间索引
STRtree spatialIndex = new STRtree();// 将几何对象添加到空间索引中
spatialIndex.Insert(geometry1.EnvelopeInternal, geometry1);
spatialIndex.Insert(geometry2.EnvelopeInternal, geometry2);// 查询指定范围内的几何对象
Envelope searchEnv = new Envelope(xmin, xmax, ymin, ymax);
IList result = spatialIndex.Query(searchEnv);
以上是对NetTopologySuite库的简要介绍,希望能够帮助你更好地了解和使用这个强大的空间数据操作库。
5. SharpMap:一个开源的地理信息系统库
5.1 简介
SharpMap 是一个用于处理空间数据的开源地理信息系统库。它提供了一系列的地图绘制和空间查询功能,可以帮助开发者构建基于地图的应用程序。
5.1.1 核心功能
- 地图投影转换
- 空间数据渲染
- 空间查询
- 数据格式转换
5.1.2 使用场景
SharpMap 可以被广泛用于各种地图相关应用的开发,如地理信息系统、位置服务、地图展示等领域。
5.2 安装与配置
5.2.1 安装指导
通过 NuGet 包管理器可以很方便地安装 SharpMap。在 Visual Studio 中创建一个新的项目,然后执行以下命令来安装 SharpMap:
Install-Package SharpMap
5.2.2 基本配置
配置 SharpMap 可以参考官方文档,主要包括设置地图投影、加载空间数据源等操作。
5.3 API 概览
5.3.1 地图绘制
使用 SharpMap 绘制地图非常简单。以下是一个基本的 C# 示例代码:
// 创建地图对象
var map = new Map(800, 600);// 添加图层
var layer = new SharpMap.Layers.VectorLayer("MyLayer");
layer.DataSource = new SharpMap.Data.Providers.ShapeFile("path_to_your_shapefile.shp", true);
map.Layers.Add(layer);// 设置地图范围
map.ZoomToExtents();// 渲染地图
var image = map.GetMap();
更多关于地图绘制的详细信息可以参考 官方文档
5.3.2 空间查询
SharpMap 提供了丰富的空间查询功能,以下是一个简单的空间查询示例:
// 创建数据源
var dataSource = new SharpMap.Data.Providers.ShapeFile("path_to_your_shapefile.shp");// 创建查询对象
var query = new SharpMap.Data.FeatureDataSet();// 执行空间查询
dataSource.ExecuteIntersectionQuery(spatialGeometry, query);
更多关于空间查询的详细信息可以参考 官方文档
以上是对 SharpMap 的简要介绍以及部分 API 的示例,你可以通过官方文档进一步了解该库的更多功能和用法。
6. GeoAPI:用于地理空间数据处理的接口库
6.1 简介
GeoAPI 是一个开源的地理信息系统工具包,用于处理地理空间数据。它提供了一组接口和方法,方便开发者对地理信息进行操作和管理。
6.1.1 核心功能
GeoAPI 主要提供了以下核心功能:
- 地理空间数据的读取、写入和处理
- 地理坐标系转换
- 空间分析和查询
6.1.2 使用场景
GeoAPI 可以应用于许多领域,如地图绘制、位置服务、地理信息系统等。在需要处理地理空间数据的项目中,GeoAPI 提供了高效且可靠的解决方案。
6.2 安装与配置
6.2.1 安装指南
通过 NuGet 包管理器可以很方便地安装 GeoAPI。打开 Visual Studio 控制台,并执行以下命令:
Install-Package NetTopologySuite.IO.GeoAPI
更多安装方式和详细说明可以参考 GeoAPI GitHub 页面。
6.2.2 基本设置
完成安装后,在代码中引入 GeoAPI 的命名空间:
using GeoAPI.Geometries;
using GeoAPI.CoordinateSystems.Transformations;
6.3 API 概览
6.3.1 地理空间操作
GeoAPI 提供了一套完整的地理空间操作接口,可以进行点、线、面等几何对象的创建、编辑和计算。以下是一个简单的示例,创建一个点并计算其距离:
// 创建一个点
IPoint point1 = new Point(1, 2);
IPoint point2 = new Point(4, 6);// 计算两点之间的距离
double distance = point1.Distance(point2);
Console.WriteLine("两点之间的距禧:" + distance);
6.3.2 地理坐标转换
GeoAPI 支持不同地理坐标系之间的转换操作。以下示例将一个 WGS84 坐标系下的经纬度点转换为 Web Mercator 投影坐标系下的点:
ICoordinateTransformationFactory factory = new CoordinateTransformationFactory();
ICoordinateSystem wgs84 = GeographicCoordinateSystem.WGS84;
ICoordinateSystem webMercator = ProjectedCoordinateSystem.WebMercator;ICoordinateTransformation transformation = factory.CreateFromCoordinateSystems(wgs84, webMercator);IPoint wgs84Point = new Point(-118, 34); // 经度-118,纬度34
IPoint webMercatorPoint = transformation.MathTransform.Transform(wgs84Point);Console.WriteLine("转换后的 Web Mercator 坐标:" + webMercatorPoint.X + ", " + webMercatorPoint.Y);
以上是基于 GeoAPI 的简单示例,更多的 API 和操作可以参考 GeoAPI 文档。
总结
本文介绍了六个与地理信息系统相关的软件套件和库,涵盖了从地图创建、数据分析到空间查询、地理坐标转换等多个方面。ArcGIS作为一个全面的地理信息系统软件套件,提供强大的地图创建和数据分析功能;PostGIS则是一个为PostgreSQL数据库提供空间数据管理的扩展,适用于需要地理查询的场景;ProjNet专注于地理空间数据处理,提供了丰富的投影转换功能;NetTopologySuite和SharpMap分别提供了空间数据操作和地理信息系统的开源库,可以满足不同需求下的地理空间处理;而GeoAPI则为地理空间数据处理提供了便捷的接口库。通过本文的介绍,读者可以更加深入地了解这些工具的特点和适用场景,为实际项目的选择和开发提供参考。
相关文章:
【C#生态园】探索地理信息系统软件套件与库:功能、API和应用
探索地理信息系统:软件套件与库详解 前言 地理信息系统(GIS)是当今世界上广泛使用的技术之一,它以空间数据为基础,能够提供丰富的地理信息分析和可视化功能。在GIS领域,有许多优秀的软件套件和库…...
Jupyter的使用分享
文章目录 碎碎念安装方法1.安装Anaconda方法2.通过库的安装方式 启动使用教程1.指定目录打开2.启动后的简单使用 小结 碎碎念 前情提示 之前与许多小伙伴交流的时候,发现大家对于pycharm更容易上手(可能是比较好设置中文的原因),在…...
24龙信比赛复现
案情简介: 近期,某公安机关接到受害人报案:通过微信添加认识一位相亲中介客服,客服邀约其与“相亲”对象进行选妃,受害人上钩后,整个过程被涉案团伙录音录像,同时,该客服以有更多的…...
PHP反射机制
HP反射机制是PHP语言中的一个强大特性,它允许程序在运行时检查、获取和操作类、方法、属性等元素的信息。这一机制极大地提高了PHP代码的灵活性和可维护性,使得开发者能够在不修改原有代码结构的情况下,动态地了解并操作代码。以下是对PHP反射…...
使用阿里云试用资源快速部署web应用-dofaker为例
本文介绍使用阿里云的试用资源部署dofaker的方法,本教程主要作学习在阿里云部署web应用之用,部署好应用之后,可以在任何地点通过公网ip访问web应用。 一、创建云主机 登录阿里云账户之后,点击控制台: 点击云服务器EC…...
需求11——解决字段无法清空的两个小bug
目录 背景 第一个小bug——问题阐述 第一个小bug——解决方案 第二个小bug——问题阐述 第二个小bug——解决方案 总结 背景 已经写了一个上午的文章了,写完这篇就可以去吃饭了。这也是这几个月的我写的最后一个小bug文章,把这篇文章写完就搞定了…...
mysql学习教程,从入门到精通,SQL 创建索引(CREATE INDEX 语句)(35)
1、SQL 创建索引(CREATE INDEX 语句) 在SQL中,创建索引(CREATE INDEX)是一种用于提高数据库查询性能的方法。索引类似于书的目录,通过它可以更快地定位到表中的特定行。以下是一个创建索引的示例,以及对其各部分的解释…...
Pikachu-Cross-Site Scripting-DOM型xss_x
查看代码,输入的内容,通过get请求方式,用text 参数带过去; 获取text内容,赋值给xss 然后拼接到 dom 里;构造payload的关键语句: <a href"xss">就让往事都随风,都随风吧</a&…...
Pikachu-Cross-Site Scripting-xss之htmlspecialchars
首先输入各种字符 查看页面元素,可以看到这里对一些符号做了转换,但是 单引号等几个符号没处理; 从代码上看;使用单引号做闭合; 构造payload a onclickalert(11) 提交,得到xss攻击...
CSS基础中padding详解
文章目录 CSS基础中padding详解一、引言二、Padding基础1、Padding属性1.1、Padding的四个方向 2、Padding的值类型3、代码示例 三、Padding简写方法1、简写顺序2、简写规则3、代码示例 四、Padding对元素大小的影响1、解决方案1.1、Box-sizing属性1.2、计算实际宽度 五、总结 …...
OpenGL笔记十九之相机系统
OpenGL笔记十九之相机系统 —— 2024-10-02 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十九之相机系统1.运行1.1.游戏相机1.2.轨迹球相机 2.游戏相机与轨迹球相机切换3.博主笔记本要运行需要更改的文件更改1:28_OpenGL_CameraSystem/applicat…...
P-Tuning v2:一种普遍有效的提示调整方法
人工智能咨询培训老师叶梓 转载标明出处 预训练语言模型通过微调(fine-tuning)来适应特定任务虽然效果显著,但存在训练成本高、参数存储量大等问题。为了解决这些问题,清华大学的研究者们提出了一种名为P-Tuning v2的提示调整&am…...
微信小程序启动不起来,报错凡是以~/包名/*.js路径的文件,都找不到,试过网上一切方法,最终居然这么解决的,【避坑】命运的齿轮开始转动
app.json "resolveAlias": {"~/*": "/*"},文件代码也没有问题,网上的方法试过来了,大模型AI也问过遍,熬夜到凌晨2点半,最不可思议的是居然是因为微信开发者工具版本的问题,我真的是笑死…...
C#串口温度读取
背景:每天学点,坚持 要安装好虚拟串口和modbus poll,方便调试(相关资源在文末,也可以私信找我要) 传感器部分使用的是达林科技的DL11B-MC-D1,当时42软妹币买的(官网上面有这个传感…...
2.5 Spring Boot整合Spring MVC框架
今天,我将向大家介绍如何在Spring Boot中整合Spring MVC框架,并展示如何创建和测试控制层(Controller)。 首先,让我们简要回顾一下Spring MVC。Spring MVC是一个基于Servlet的MVC框架,它简单、侵入性小&am…...
Java 归并排序
归并排序(Merge Sort)是一种基于分治法的排序算法。它将一个大数组分成两个较小的子数组,分别对每个子数组进行排序,然后再将这两个已排序的子数组合并成一个完整的已排序数组。归并排序的时间复杂度为 O(n log n),其中…...
20241008深度学习动手篇
文章目录 1.如何写一个神经网络进行训练?1.1创建一个子类,搭建你需要的神经网络结构1.2 加载数据集1.3 自定义一些指标评估函数1.4训练1.5 结果展示 2.参考文献 1.如何写一个神经网络进行训练? 1.1创建一个子类,搭建你需要的神经网络结构 # File: 241008LeNet.py # Author:…...
对序列化反序列化在项目中的使用优化
文章目录 序列化是什么?常见的序列化协议使用序列化反序列化序列化List反序列化List 查看源码,分析不足进行改善 序列化是什么? 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,…...
查看 git log的过程中看到 :说明日志输出可能超出屏幕大小,系统进入了分页模式
在命令行提示符中,通常 : 表示系统等待进一步的输入。如果你在查看 git log 的过程中看到 :,说明日志输出可能超出屏幕大小,系统进入了分页模式,默认使用 less 命令查看内容。 此时你可以: 按 q 退出日志查看。按 En…...
Linux--信号量详解
目录 一、信号量 1、信号量相关函数 2、多线程环形队列生产消费模型 3、实现代码 信号量是将整体的资源分割成多份使用 信号量本质是对资源的预定机制 一、信号量 1、信号量相关函数 创建信号量: sem_init: int sem_init(sem_t *sem, int pshared, unsigned int value); …...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
