GeoServer改造Springboot源码十(样式管理设计)

GeoServer改造Springboot源码一(公共部分)

GeoServer改造Springboot源码二(数据源管理设计)

GeoServer改造Springboot源码三(数据源管理代码)

GeoServer改造Springboot源码四(图层管理设计)

GeoServer改造Springboot源码五(图层管理代码)

GeoServer改造Springboot源码六(工作区管理设计)

GeoServer改造Springboot源码七(工作区管理代码)

GeoServer改造Springboot源码八(图层预览设计)

GeoServer改造Springboot源码九(图层预览代码)

GeoServer改造Springboot源码十(样式管理设计)-CSDN博客

GeoServer改造Springboot源码十一(样式管理代码)-CSDN博客

一、界面设计

图 1样式管理列表

图 2SLD样式新增

图 3JSON样式新增

图 4SLD样式编辑

图 5JSON样式编辑

图 6样式预览

图 7SLD样式关联列表

二、功能描述

  1. 样式列表:展示样式名称、样式格式、工作区、创建时间、修改时间等信息的分页列表;
  2. 创建/编辑:选择SLD(GeoServer样式)和JSON(Mapbox样式)格式,分别填写对应格式的样式相关信息;样式名称重复不能保存。
  3. 预览:预览绑定此样式的图层,默认样式优先级大于附加样式优先级;
  4. 关联:编辑关联图层的默认样式和附加样式;取消默认样式,系统会指定一个默认样式“generic”。
  5. 删除:根据ID删除单条记录。

 三、接口设计

样式管理分页列表

版本说明

V1.0

服务地址

style/getStylePageList

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

keywords

String

关键字

pageNum

Int

当前页

pageSize

Int

每一页的大小

workspaceName

String

工作区名称

返回结果

{

  "code": 200,

  "msg": null,

  "data": {

    "pageNum": 1,

    "pageSize": 10,

    "pages": 1,

    "total": 6,

    "pageData": [

      {

        "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151",

        "styleName": "xa_sthx_poly",

        "workspaceName": null,

        "workspaceId": null

      },

      {

        "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb7",

        "styleName": "generic",

        "workspaceName": null,

        "workspaceId": null

      },

      {

        "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb8",

        "styleName": "raster",

        "workspaceName": null,

        "workspaceId": null

      },

      {

        "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb9",

        "styleName": "polygon",

        "workspaceName": null,

        "workspaceId": null

      },

      {

        "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fba",

        "styleName": "line",

        "workspaceName": null,

        "workspaceId": null

      },

      {

        "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fbb",

        "styleName": "point",

        "workspaceName": null,

        "workspaceId": null

      }

    ]

  }

}

SLD样式创建

版本说明

V1.0

服务地址

style/addSldStyle

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "workspaceId": "WorkspaceInfo.e60e1a1e-ec69-4b5f-b9eb-b6475b8d5621",

  "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n  <NamedLayer>\n    <se:Name>xa_sthx_4495</se:Name>\n    <UserStyle>\n      <se:Name>xa_sthx_4495</se:Name>\n      <se:FeatureTypeStyle>\n        <se:Rule>\n          <se:Name>Single symbol</se:Name>\n          <se:PolygonSymbolizer>\n            <se:Fill>\n              <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n              <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n            </se:Fill>\n            <se:Stroke>\n              <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n            </se:Stroke>\n          </se:PolygonSymbolizer>\n        </se:Rule>\n      </se:FeatureTypeStyle>\n    </UserStyle>\n  </NamedLayer>\n</StyledLayerDescriptor>\n",

  "hasDefault": false,

  "styleName": "xa_sthx_poly",

  "format": "SLD"

}

返回结果

{

  "code": 200,

  "msg": "新增SLD样式成功",

  "data": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151"

}

JSON样式创建

版本说明

V1.0

服务地址

style/addJsonStyle

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8",

  "rawStyle": "{\"id\":\"background\",\"type\":\"background\",\"paint\":{\"background-color\":\"rgba(185, 148, 148, 1)\"}}",

  "hasDefault": false,

  "styleName": "third-json",

  "format": "JSON"

}

返回结果

{

  "code": 200,

  "msg": "新增JSON样式成功",

  "data": "StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365"

}

SLD样式编辑

版本说明

V1.0

服务地址

style/editSldStyle

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "styleId":"StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151",

  "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8",

  "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n  <NamedLayer>\n    <se:Name>xa_sthx_4495</se:Name>\n    <UserStyle>\n      <se:Name>xa_sthx_4495</se:Name>\n      <se:FeatureTypeStyle>\n        <se:Rule>\n          <se:Name>Single symbol1</se:Name>\n          <se:PolygonSymbolizer>\n            <se:Fill>\n              <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n              <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n            </se:Fill>\n            <se:Stroke>\n              <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n            </se:Stroke>\n          </se:PolygonSymbolizer>\n        </se:Rule>\n      </se:FeatureTypeStyle>\n    </UserStyle>\n  </NamedLayer>\n</StyledLayerDescriptor>\n",

  "hasDefault": false,

  "styleName": "first-style2",

  "format": "SLD"

}

返回结果

{

  "code": 200,

  "msg": "修改SLD样式成功",

  "data": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151"

}

JSON样式编辑

版本说明

V1.0

服务地址

style/editJsonStyle

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "styleId":"StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365",

  "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8",

  "rawStyle": "{\"id\":\"background\",\"type\":\"background\",\"paint\":{\"background-color\":\"rgba(23, 148, 148, 1)\"}}",

  "hasDefault": false,

  "styleName": "third-update-json",

  "format": "JSON"

}

返回结果

{

  "code": 200,

  "msg": "修改JSON样式成功",

  "data": "StyleInfo.3aa34eac-f86b-48eb-801c-e38de98c2365"

}

SLD样式详情

版本说明

V1.0

服务地址

style/sld/getDetail

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

styleId

String

样式id

返回结果

{

  "code": 200,

  "msg": "获取SLD样式详情成功",

  "data": {

    "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151",

    "styleName": "first-style2",

    "workspaceName": "secondWP",

    "workspaceId": "WorkspaceInfo.8078c2d5-ddf0-4d34-a726-57491c41a2d8",

    "format": "SLD",

    "rawStyle": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<StyledLayerDescriptor xmlns=\"http://www.opengis.net/sld\" xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:se=\"http://www.opengis.net/se\" version=\"1.1.0\" xsi:schemaLocation=\"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n  <NamedLayer>\n    <se:Name>xa_sthx_4495</se:Name>\n    <UserStyle>\n      <se:Name>xa_sthx_4495</se:Name>\n      <se:FeatureTypeStyle>\n        <se:Rule>\n          <se:Name>Single symbol1</se:Name>\n          <se:PolygonSymbolizer>\n            <se:Fill>\n              <se:SvgParameter name=\"fill\">#f60318</se:SvgParameter>\n              <se:SvgParameter name=\"fill-opacity\">0</se:SvgParameter>\n            </se:Fill>\n            <se:Stroke>\n              <se:SvgParameter name=\"stroke\">#fb0a47</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-width\">1</se:SvgParameter>\n              <se:SvgParameter name=\"stroke-linejoin\">bevel</se:SvgParameter>\n            </se:Stroke>\n          </se:PolygonSymbolizer>\n        </se:Rule>\n      </se:FeatureTypeStyle>\n    </UserStyle>\n  </NamedLayer>\n</StyledLayerDescriptor>\n",

    "legend": {

      "onlineResource": null,

      "width": 0,

      "heignt": 0,

      "format": null

    },

    "hasDefault": false

  }

}

SLD默认样式列表

版本说明

V1.0

服务地址

style/sld/default

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

返回结果

{

  "code": 200,

  "msg": "获取SLD默认样式列表成功",

  "data": [

    {

      "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb7",

      "styleName": "generic",

      "workspaceName": null,

      "workspaceId": null,

      "dateCreated": null,

      "dateModified": null

    },

    {

      "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb8",

      "styleName": "raster",

      "workspaceName": null,

      "workspaceId": null,

      "dateCreated": null,

      "dateModified": null

    },

    {

      "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fb9",

      "styleName": "polygon",

      "workspaceName": null,

      "workspaceId": null,

      "dateCreated": null,

      "dateModified": null

    },

    {

      "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fba",

      "styleName": "line",

      "workspaceName": null,

      "workspaceId": null,

      "dateCreated": null,

      "dateModified": null

    },

    {

      "styleId": "StyleInfoImpl-66ef5c1a:18b188aa48a:-7fbb",

      "styleName": "point",

      "workspaceName": null,

      "workspaceId": null,

      "dateCreated": null,

      "dateModified": null

    }

  ]

}

SLD样式预览

版本说明

V1.0

服务地址

style/previewSld

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

返回结果

{ "code" : 0, "data" : [ { } ], "message" : "string" }

JSON样式预览

版本说明

V1.0

服务地址

style/previewJson

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

返回结果

{ "code" : 0, "data" : [ { } ], "message" : "string" }

样式删除

版本说明

V1.0

服务地址

style/deleteStylerById

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

styleId

String

样式id

返回结果

{

  "code": 200,

  "msg": "xa-road删除成功",

  "data": "StyleInfo.6c9c1ac3-9ce5-4fe2-b60b-47c0f4481952"

}

样式批量删除

版本说明

V1.0

服务地址

style/deleteStylerByIds

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

styleId

String

样式id

返回结果

{

  "code": 200,

  "msg": "xa-road删除成功",

  "data": "StyleInfo.6c9c1ac3-9ce5-4fe2-b60b-47c0f4481952"

}

样式发布-样式发布界面的图层列表

版本说明

V1.0

服务地址

style/publishing/info

方法

GET

参数说明

名称

数据类型

是否必填

参数说明

输入参数

styleId

String

样式id

keywords

String

搜索关键字(匹配图层名称)

current

int

当前页

pageSize

int

每页数

返回结果

{

  "code": 200,

  "msg": null,

  "data": {

    "pageNum": 1,

    "pageSize": 10,

    "pages": 1,

    "total": 2,

    "pageData": [

      {

        "workspaceName": "firstWP",

        "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7",

        "layerName": "6aa24711a54b40bfbab4bc35582dd017",

        "hasDefault": true,

        "associated": false

      },

      {

        "workspaceName": "firstWP",

        "layerId": "LayerInfo.dc62e605-1299-47e0-8eb1-d48b57e9ddd7",

        "layerName": "UTM2GTIF",

        "hasDefault": false,

        "associated": false

      }

    ]

  }

}

Response head

样式发布-默认操作

版本说明

V1.0

服务地址

style/defaultStyler

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7",

  "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151",

  "styleState": true

}

返回结果

{

  "code": 200,

  "msg": "修改成功",

  "data": null

}

样式发布-关联操作

版本说明

V1.0

服务地址

style/subjoinStyler

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "layerId": "LayerInfo.764044e2-6c13-47bf-8efc-a0bd523706c7",

  "styleId": "StyleInfo.74164441-d0ef-4f09-96a1-c771962f7151",

  "styleState": true

}

返回结果

{

  "code": 200,

  "msg": "修改成功",

  "data": null

}

获取边界信息接口

版本说明

V1.0

服务地址

layerGroup/calculateBoxInfo

方法

POST

参数说明

名称

数据类型

是否必填

参数说明

输入参数

{

  "layers": [

     {

        "name": "line",

        "defaultStyle": true,

        "style": "line"

      },

      {

        "name": "polygon",

        "defaultStyle": true,

        "style": "polygon"

      }

  ]

}

返回结果

{

  "code": 200,

  "msg": null,

  "data": {

    "minX": 21.897338,

    "minY": 118.1231864,

    "maxX": 26.3797419,

    "maxY": 122.082368,

    "crs": "EPSG:4326"

  }

}

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

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

相关文章

CNN的小体验

用的pytorch。 训练代码cnn.py&#xff1a; import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms import torch.nn.functional as F# 定义超参数 num_epochs 10 batch_size 100 learning_rat…

使用Python绘制彩虹效果:动态彩虹动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制彩虹函数定义颜色列表主循环 完整代码 引言 彩虹是自然界中最美丽的现象之一。通过编程&#xff0c;我们可以将这一奇妙的景象带到屏幕上。在这篇博客中&#xff0c;我们将使用Python来创建一个…

聊聊 golang 的 map

1、哈希表 哈希表是一个很常见的数据结构&#xff0c;用来存储无序的 key/value 对&#xff0c;给定的 key 可以在 O(1) 时间复杂度内查找、更新或删除对应的 value。 设计一个好的哈希表&#xff0c;需要着重关注两个关键点&#xff1a;哈希函数、冲突处理。 1.1 哈希函数 …

Redis 高级数据结构业务实践

0、前言 本文所有代码可见 > 【gitee code demo】 本文会涉及 hyperloglog 、GEO、bitmap、布隆过滤器的介绍和业务实践 1、HyperLogLog 1.1、功能 基数统计&#xff08;去重&#xff09; 1.2、redis api 命令作用案例PFADD key element [element ...]添加元素到keyPF…

力扣 用队列实现栈(Java)

核心思想&#xff1a;因为队列都是一端进入另一端出&#xff08;先进先出&#xff0c;后进后出&#xff09;&#xff0c;因此一个队列肯定是不能实现栈的功能的&#xff0c;这里就创建两个队列来模拟栈的先进后出&#xff0c;后进先出。 比如说如果是push操作我们肯定是要弹出栈…

STM32自己从零开始实操08:电机电路原理图

一、LC滤波电路 其实以下的滤波都可以叫低通滤波器。 1.1倒 “L” 型 LC 滤波电路 1.1.1定性分析 1.1.2仿真实验 电感&#xff1a;通低频阻高频的。仿真中高频信号通过电感&#xff0c;因为电感会阻止电流发生变化&#xff0c;故说阻止高频信号 电容&#xff1a;隔直通交。…

65、基于卷积神经网络的调制分类(matlab)

1、基于卷积神经网络的调制分类的原理及流程 基于卷积神经网络&#xff08;CNN&#xff09;的调制分类是一种常见的信号处理任务&#xff0c;用于识别或分类不同调制方式的信号。下面是基于CNN的调制分类的原理和流程&#xff1a; 原理&#xff1a; CNN是一种深度学习模型&a…

SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter]

SpringBoot自定义starter SpringBoot与AOP SpringBoot与AOP 使用AOP实现用户接口访问日志功能 添加AOP场景启动器 <!--添加AOP场景启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</…

都2024了,现在搞本HCIE真的还来得及?

信息技术的迅猛发展&#xff0c;网络的飞速进步&#xff0c;网络工程师这一职业的需求也在不断增加。 作为华为认证体系中的顶级认证&#xff0c;HCIE一直以来都是网络工程师追求的目标之一。 都2024了&#xff0c;厂商认证都火了十几年来&#xff0c;很多人犹犹豫豫&#xff0…

Mybatis1(JDBC编程和ORM模型 MyBatis简介 实现增删改查 MyBatis生命周期)

目录 一、JDBC编程和ORM模型 1. JDBC回顾 2. JDBC的弊端 3. ORM模型 Mybatis和hibernate 区别: 4. mybatis 解决了jdbc 的问题 二、MyBatis简介 1. MyBatis快速开始 1.1 导入jar包 1.2 引入 mybatis-config.xml 配置文件 1.3 引入 Mapper 映射文件 1.3 测试 …

Ubuntu Server 和 Ubuntu Desktop 组合使用

1.常见的组合使用方式 Ubuntu Server 和 Ubuntu Desktop 确实可以组合使用&#xff0c;但具体要看你的需求和使用场景。以下是一些常见的组合使用方式&#xff1a; 单一设备上安装&#xff1a;你可以在一台设备上同时安装 Ubuntu Server 和 Ubuntu Desktop。这样&#xff0c;你…

【ARM系列】1of N SPI

1 of N模式 SPI 概述配置流程 概述 GIC-600AE支持1 of N模式SPI。在此模式下可以将SPI target到多个core&#xff0c;并且GIC-600AE可以选择哪些内核接收SPI。 GIC-600AE只向处于powered up 并且使能中断组的core发送SPI。 GIC-600AE会优先考虑那些被认为是active的核&#xf…

OOCL东方海外不定位置旋转验证码识别代码

样例图如下 这款验证码的识别最大难度在于&#xff0c;旋转的位置不固定&#xff0c;需要识别旋转图片的位置。 第二大难点就是旋转角度的识别。所以我们采集了大量样例图片进行训练&#xff0c;如下图所示 最终训练得到的模型需要两张图片输入&#xff0c;才能完成旋转角度识…

阿里 Mobile-Agent-v2:基于大模型的安卓鸿蒙自动化工具

与之前介绍的 DigiRL类似, Mobile-Agent-v2是一个支持安卓和鸿蒙系统的自动化工具&#xff0c;它使用视觉模型理解手机屏幕&#xff0c;并利用 ADB 来实现操作手机&#xff0c;你可以在本地运行&#xff0c;或者通过手机截图在线体验 Mobile-Agent-v2 从演示来看&#xff0c;可…

短信接口平台的核心功能有哪些?如何使用?

短信接口平台怎么有效集成&#xff1f;选择短信接口平台的技巧&#xff1f; 短信接口平台作为一种重要的通信工具&#xff0c;广泛应用于各种企业和组织。通过短信接口平台&#xff0c;企业能够高效、便捷地与客户进行互动和沟通。AoKSend将详细介绍短信接口平台的核心功能。 …

Android --- 新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死,鼠标和键盘都操作不了

新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死&#xff0c;鼠标和键盘都操作不了 大概原因就是,初始化默认Google的安卓模拟器占用的RAM内存是2048&#xff0c;如果电脑的性能和内存一般的话就可能卡死&#xff0c;解决方案是手动修改安卓模拟器的config文件&…

Python酷库之旅-第三方库openpyxl(20)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…

架构练习题目

【2022下架构真题第24题&#xff1a;红色】 24.在分布式系统中&#xff0c;中间件通常提供两种不同类型的支持&#xff0c;即&#xff08;27) A.数据支持和交互支持 B.交互支持和提供公共服务 C.数据支持和提供公共服务 D.安全支持和提供公共服务 解答&#xff1a;答案选择B。…

【知识图谱系列】(实例)python操作neo4j构建企业间的业务往来的知识图谱

本章节通过聚焦于"金额"这一核心属性&#xff0c;构建了一幅知识图谱&#xff0c;旨在揭示"销售方"与"购买方"间的商业互动网。在这张图谱中&#xff0c;绿色节点象征着购买方&#xff0c;而红色节点则代表了销售方。这两类节点间的紧密连线&…

苹果手机+AI手机概念股名单一览表

苹果智能将成为AI手机引领者&#xff0c;推动原生智能加速渗透&#xff0c;据Canlys预计2025年iOS操作系统将占据全球AI手机出货的55%。 AI手机端侧算力提升&#xff0c;将带动产业链部件升级创新 端侧算力提升或带动手机芯片及零部件升级&#xff0c;如 1&#xff09;SoC芯片&…