uniapp 地图添加,删除,编辑标记,在地图中根据屏幕范围中呈现标记

前言

小程序实现新功能,在地图中选取位置添加标记,并在地图中呈现添加的标记,(呈现的是根据当前屏幕范围内的标记),并对标记进行分享,删除,编辑,导航,并从分享标记点位置打开页面的时候在呈现该标记的信息详情,

部分代码解释

scale:地图缩放级别
markers:标记点	
callouttap:标记点点击事件
markertap:markers内容的点击事件,就是自定义内容的点击事件
regionchange:推拽事件
regionchange - begin :拖拽开始事件
regionchange - end:拖拽结束事件
this.mapContext = uni.createMapContext("map", this); // 创建地图上下文
that.mapContext.getCenterLocation: 获取中心点位置
that.mapContext.getRegion : 获取后获取对角坐标
that.mapContext.getScale : 获取缩放级别

更多更详细地图上下文接口点击这里(uniapp官网,进去就是地图上下文相关)

uni.chooseLocation 和 uni.getLocation 使用的时候需要先声明
在这里插入图片描述

部分功能图片预览

声明:图片中内容为随机添加,内容也是胡乱写的

在这里插入图片描述

在这里插入图片描述

拖动地图,位置也会及时更新,选取添加的标记点位置
在这里插入图片描述

地图首页

添加修改标记页面和搜索页面就没必要放上来了,都是一些基础的样式和添加逻辑,根据个人情况写就行了,主要就是添加标记,(添加页面传递参数就是进度和纬度,有重要这两个数据就可以了),bijiaoInfos,就是分享和搜索页面传递过来的,根据id请求详情,拿到经纬度,把这个坐标定为中心点,再让地图重新加载,然后在自动弹出这个id的详情弹窗,就是示例的第二张图,通过搜索和分享进来看到的就是这个页面。

还有 - 记得点赞!!

<template><view><view class="search-box"><view class="search" @click="searchFocus"><text class="iconfont icon-sousuo-copy-copy"></text><text>请输入搜索内容</text><!-- <input type="text" v-model="search" @focus="searchFocus" placeholder="请输入搜索内容"> --></view></view><view class="titleNum">当前区域标记数量为: {{ titleNum }}</view><map id="map" class="map" style="width: 100%; height: 100vh;" :scale="scale" :latitude="latitude":longitude="longitude" :markers="covers" @callouttap='mapAction' @markertap="mapAction"@regionchange="regionchange"></map><uni-popup ref="popup" background-color="#fff"><view class="popup-content"><text @click="closePopup" class="iconfont icon-x"></text><view class="popup-content-top"><view>{{ bijiaoInfo.title }}</view><view>{{ bijiaoInfo.address }}</view></view><view class="popup-content-content"><view class="popup-content-title">备注</view><view class="popup-content-text">{{ bijiaoInfo.bz }}</view></view><view class="popup-content-content"><view class="popup-content-title">创建人</view><view class="popup-content-text">{{ bijiaoInfo.username }} - {{ bijiaoInfo.addtime }}</view></view><view class="popup-img"><image @click="previewImage(index)" v-for="item, index in bijiaoInfo.picurls_path" :key="index":src="item" mode="scaleToFill" /></view><view class="popup-bom"><view class="popup-bom-left"><view class="popup-bom-left-item del" @click="delBiaoJi"><text class="iconfont icon-shanchu"></text><text>删除</text></view><button open-type="share" class="popup-bom-left-item"><text class="iconfont icon-fenxiang"></text><text>分享</text></button><view class="popup-bom-left-item" @click="biaoJiSave"><text class="iconfont icon-beizhu"></text><text>编辑</text></view></view><view @click="goNavigation" class="popup-bom-right">导航</view></view></view></uni-popup><uni-popup ref="alertDialog" type="dialog"><uni-popup-dialog type="error" cancelText="取消" confirmText="确定" title="提示":content="'您确定要删除' + bijiaoInfo.title + '标记点吗?'" @confirm="dialogConfirm"></uni-popup-dialog></uni-popup><view @click="goMyLocation" class="iconfont icon-wodeweizhi"></view><view class="gongNeng"><view class="gongNeng-item" @click="quanLanAction"><view class="iconfont icon-quanlan"></view><view>全览</view></view><view class="gongNeng-item huadian" @click="biaoJiAction"><view class="iconfont icon-weizhi"></view><view>画点</view></view></view></view>
</template><script>export default {data() {return {titleNum: 0,currentLocation: {},scale: 14,// 地图缩放级别id: null, // title: 'map',// 地图中心点 为空 默认北京   latitude: null,longitude: null,covers: [],myLatitude: null,myLongitude: null,search: '',//搜索内容searchList: [],mapContext: '',//地图对象zuobiao: {},//拖拽坐标my_zuobiao: {},//我的坐标isMarking: false, // 标记模式开关centerMarker: null, // 中心点标记type: 'bottom',bijiaoInfo: {},currentPage: 1,totle_page: 0,}},onLoad(options) {console.log("options", JSON.parse(JSON.stringify(options)));if (options.id) {this.id = options.id;this.bijiaoInfos();}// this.biaojiIndex();uni.$on('callreload', () => {this.biaojiIndex();});this.getLocation();this.mapContext = uni.createMapContext("map", this); // 创建地图上下文this.getInitialFocusCoordinates(); // 获取首次屏幕对焦经纬度},onShow() {uni.getStorage({key: 'currentLocation',success: (res) => {this.currentLocation = res.data}})// latitude: 34.745982,郑州中心点// longitude: 113.658233, },// 下拉刷新// onPullDownRefresh() {//     this.getInitialFocusCoordinates(); // 获取首次屏幕对焦经纬度//     uni.showToast({//         title: '刷新成功',//         icon: 'success',//         duration: 1000//     })//     uni.stopPullDownRefresh(); // 停止刷新	// },methods: {searchFocus() {uni.navigateTo({url: '/biaoji/searchBiaoJi'})},getLocation() {uni.getLocation({type: 'wgs84', // 获取经纬度坐标accuracy: 'high', // 请求高精度位置success: (res) => {console.log("获取经纬度坐标", JSON.parse(JSON.stringify(res)));// that.latitude =  parseFloat(res.latitude.toFixed(5));// that.longitude =  parseFloat(res.longitude.toFixed(5));this.latitude = parseFloat(res.latitude.toFixed(5));this.longitude = parseFloat(res.longitude.toFixed(5));this.myLatitude = parseFloat(res.latitude.toFixed(5));;this.myLongitude = parseFloat(res.longitude.toFixed(5));;this.covers = [{id: 1,latitude: res.latitude,longitude: res.longitude,iconPath: '../static/imgs/map/我的位置.png',width: 25,height: 25,name: '我的位置',}]},fail: (err) => {console.error('获取位置信息失败', err);}});},// 分享过来传来的id 显示标记点详情async bijiaoInfos() {const res = await this.$axios("biaoji/biaojiInfo", {id: this.id,});console.log("标记地点详情", JSON.parse(JSON.stringify(res.data)));if (res.data.code == 0) {this.bijiaoInfo = res.data.result;const latitude = parseFloat(res.data.result.latitude)const longitude = parseFloat(res.data.result.longitude)this.mapContext.moveToLocation({latitude: latitude.toFixed(5),longitude: longitude.toFixed(5),success: () => {// 添加平滑过渡效果const timer = setTimeout(() => {// 在移动后更新缩放级别this.latitude = latitude.toFixed(5),this.longitude = longitude.toFixed(5),this.scale = 14; // 设置为更适合查看的缩放级别clearTimeout(timer);this.$refs.popup.open(this.type);}, 300); // 确保地图移动有足够的时间},fail: () => {uni.showToast({title: '移动到我的位置失败',icon: 'none',duration: 2000});}});}},// 回到我的位置goMyLocation() {// 检查用户位置是否可用if (this.myLatitude === null || this.myLongitude === null) {uni.showToast({title: '无法获取当前位置,请确保已授权定位服务',icon: 'none',duration: 2000});return;}// 使用 moveToLocation 平滑移动到用户的位置this.mapContext.moveToLocation({latitude: this.myLatitude,longitude: this.myLongitude,success: () => {// 添加平滑过渡效果const timer = setTimeout(() => {// 在移动后更新缩放级别this.latitude = this.myLatitude;this.longitude = this.myLongitude;this.scale = 16; // 缩放级别clearTimeout(timer);}, 300); // 确保地图移动有足够的时间},fail: () => {uni.showToast({title: '移动到我的位置失败',icon: 'none',duration: 2000});}});},// 全览quanLanAction() {if (this.myLatitude === null || this.myLongitude === null) {uni.showToast({title: '无法获取当前位置,请确保已授权定位服务',icon: 'none',duration: 2000});return;}// 使用 moveToLocation 平滑移动到用户的位置this.mapContext.moveToLocation({latitude: this.myLatitude,longitude: this.myLongitude,success: () => {// 添加平滑过渡效果const timer = setTimeout(() => {// 在移动后更新缩放级别this.latitude = this.myLatitude;this.longitude = this.myLongitude;this.scale = 11; // 缩放级别clearTimeout(timer);}, 300); // 确保地图移动有足够的时间},fail: () => {uni.showToast({title: '全览失败',icon: 'none',duration: 2000});}});},async GetMapData() {const res = await this.$axios("work/getMap", {lat: this.location.latitude,lon: this.location.longitude});console.log("当前位置的名称", JSON.parse(JSON.stringify(res)));if (res.data.code == 0) {this.location_data = res.data.result;} else {uni.showToast({title: res.data.msg,icon: 'none',duration: 1000})}},// 获取首次屏幕对焦经纬度getInitialFocusCoordinates() {this.mapContext.getRegion({success: (res) => {console.log("获取首次屏幕对焦经纬度", JSON.parse(JSON.stringify(res)));const northeast = res.northeast; // 东北角const southwest = res.southwest; // 西南角const zuobiao = {northeast: northeast,southwest: southwest};this.zuobiao = [zuobiao.northeast, zuobiao.southwest];this.biaojiIndex();},fail: (err) => {console.error('获取对焦经纬度失败:', err);}});},// 标记地点数据async biaojiIndex() {const res = await this.$axios("biaoji/biaojiIndex", {title: '',zuobiao: this.zuobiao,scale: this.scale,page: '',//页码limit: '',//每页数量})console.log("标记地点数据", JSON.parse(JSON.stringify(res.data)));if (res.data.code == 0) {this.titleNum = res.data.totle_num;this.covers = res.data.lists.map(item => {return {id: item.id,latitude: parseFloat(item.latitude),longitude: parseFloat(item.longitude),// iconPath: '/static/images/map.png',width: 22,height: 22,callout: {content: item.title,display: 'ALWAYS',color: '#ffffff',fontSize: 12,borderRadius: 4,bgColor: '#000',padding: '5',}}});} else {uni.showToast({title: res.data.msg,icon: 'none',duration: 1000})}},// 地图标记点点击事件async mapAction(e) {console.log("markers 内容的点击事件", JSON.parse(JSON.stringify(e)));this.$refs.popup.open(this.type);const res = await this.$axios("biaoji/biaojiInfo", {id: e.detail.markerId});console.log("标记地点详情", JSON.parse(JSON.stringify(res.data)));if (res.data.code == 0) {this.bijiaoInfo = res.data.result;}},//监听地图拖拽regionchange(data) {// console.log("拖拽", JSON.parse(JSON.stringify(data)));const that = this;if (data.type == "end") {// 获取拖拽后的中心点that.mapContext.getCenterLocation({success: function (res) {that.latitude = parseFloat(res.latitude.toFixed(5));that.longitude = parseFloat(res.longitude.toFixed(5));// 获取后获取对角坐标that.mapContext.getRegion({success: (res) => {const zuobiao = {northeast: res.northeast,southwest: res.southwest};that.zuobiao = [zuobiao.northeast, zuobiao.southwest];// 获取缩放级别that.mapContext.getScale({success: (res) => {if (res.scale !== that.scale) {that.scale = res.scale; // 更新缩放级别}}})that.biaojiIndex();}})}});}},// 添加标记点biaoJiAction() {uni.getSetting({success: (res) => {if (res.authSetting['scope.userLocation']) { /* 用户授权成功时走这里 */this.handerChooseLocation()} else if (res.authSetting['scope.userLocation'] === undefined) { /* 用户未授权时走这里 */console.log('没有授权')this.handleOpenSetting()} else { /* 用户拒绝了授权后走这里 */console.log('拒绝了授权 false')this.handleOpenSetting()}},})},handerChooseLocation() {uni.chooseLocation({latitude: this.latitude,longitude: this.longitude,success: (res) => {// console.log('wx.chooseLocation res=', res)uni.setStorageSync('currentLocation', res)uni.navigateTo({url: '/biaoji/biaojiInfo?status=1&res=' + JSON.stringify(res)})},fail: function (err) {console.log('取消按钮', err)}})},handleOpenSetting() {wx.openSetting({success: (res) => {console.log('定位 openSetting', res)if (res.authSetting["scope.userLocation"]) {this.handerChooseLocation()}}})},// 关闭弹窗closePopup() {this.$refs.popup.close();if (this.id != null) {this.getInitialFocusCoordinates(); // 获取首次屏幕对焦经纬度this.id = null;}},// 右上角分享onShareAppMessage() {return {title: this.bijiaoInfo.title,path: '/biaoji/biaoji?id=' + this.bijiaoInfo.id, //自定义路径// imageUrl: '分享图片链接',};},// 右上角分享到朋友圈onShareTimeline() {return {title: this.bijiaoInfo.title,path: '/biaoji/biaoji', //自定义路径// imageUrl: this.shareImg //自定义展示图片};},// 导航goNavigation() {// 导航跳转uni.openLocation({latitude: parseFloat(this.bijiaoInfo.latitude),longitude: parseFloat(this.bijiaoInfo.longitude),name: this.bijiaoInfo.title,address: this.bijiaoInfo.address,success: function (res) {console.log('打开系统位置地图成功')},fail: function (error) {console.log(error)}})},// 图片预览previewImage(index) {uni.previewImage({urls: this.bijiaoInfo.big_picurls,current: index, // 当前显示图片的索引loop: true // 是否开启图片轮播});},// 删除标记点async delBiaoJi() {this.$refs.alertDialog.open()},// 删除标记点async dialogConfirm() {const res = await this.$axios("biaoji/biaojiDel", {id: this.bijiaoInfo.id})console.log("删除标记点", JSON.parse(JSON.stringify(res)));if (res.data.code == 0) {this.$refs.popup.close()uni.showToast({title: '删除成功',icon: 'success',duration: 1000})this.getLocation();this.biaojiIndex();this.getInitialFocusCoordinates(); // 获取首次屏幕对焦经纬度} else {uni.showToast({title: res.data.msg,icon: 'none',duration: 1000})}},// 修改标记点biaoJiSave() {this.$refs.popup.close()uni.navigateTo({url: '/biaoji/biaojiInfo?status=2&id=' + this.bijiaoInfo.id})},}}
</script><style lang="scss" scoped>
.search-box {background-color: white;padding: 0.5rem 0;.search {width: 90%;margin: auto;display: flex;align-items: center;font-size: 14px;background-color: #f7f7f7;padding: 0.4rem;border-radius: 30px;.icon-sousuo-copy-copy {font-size: 14px;margin-right: 10px;margin-left: .5rem;}text {color: DarkGray;}}}.icon-wodeweizhi {position: fixed;left: 2%;bottom: 5%;background-color: white;padding: 0.5rem;z-index: 3;border-radius: 10px;
}.gongNeng {position: fixed;right: 2%;bottom: 5%;border-radius: 10px;background-color: white;padding: 0.5rem;z-index: 3;.gongNeng-item {font-size: 12px;text-align: center;}.huadian {margin-top: 0.5rem;.iconfont {margin-bottom: 0.3rem;}}
}.popup-content {position: relative;padding: 1rem 0;// font-size: 1px;.icon-x {position: absolute;top: 1rem;right: 1rem;font-size: 20px;}.popup-content-top {margin: 0 1rem;border-bottom: 1px solid #f7f7f7;padding-bottom: 0.5rem;view:nth-of-type(1) {font-size: 14px;margin-top: 0.3rem;font-weight: bold;}view:nth-of-type(2) {font-size: 10px;margin-top: 0.3rem;color: #666666;}}.popup-content-content {margin: 0 1rem;border-bottom: 1px solid #f7f7f7;padding-bottom: 0.5rem;.popup-content-text {margin-top: 0.3rem;font-size: 12px;}}.popup-content-title {font-weight: bold;font-size: 12px;margin-top: 0.3rem;}.popup-img {margin: 0.5rem 1rem;image {margin-right: 0.3rem;width: 80px;height: 80px;}}.popup-bom {margin: 0 1rem;margin-top: 3rem;display: flex;justify-content: space-between;align-items: center;border-top: 1px solid #f7f7f7;.popup-bom-left {display: flex;align-items: center;font-size: 12px;.popup-bom-left-item {.iconfont {margin-right: 0.2rem;}}.del {color: #f56c6c;}button {font-size: 12px;background-color: white;// height: 60px;}button::after {border: none;}}.popup-bom-right {color: white;background-color: #377fff;border-radius: 30px;padding: 0.3rem 0.8rem;font-size: 14px;text-align: center;}}
}.searchDialog {background-color: white;height: 50vh;
}.titleNum {position: fixed;left: 0.2rem;top: 3.5rem;background-color: white;padding: 0.3rem;z-index: 5;font-size: 14px;border-radius: 5px;
}
</style>

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

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

相关文章

DPO、KTO、DiffusionDPO

DPO&#xff08;Direct Preference Optimization&#xff09; 原文来自于 https://arxiv.org/pdf/2305.18290&#xff0c; Bradley-Terry (BT)模型&#xff0c;假设人的喜欢遵循下面的公式&#xff0c;给定x&#xff0c;得到 y 1 y_1 y1​和 y 2 y_2 y2​分别遵循以下关系&am…

Android Studio安装配置

一、注意事项 想做安卓app和开发板通信&#xff0c;踩了大坑&#xff0c;Android 开发不是下载了就能直接开发的&#xff0c;对于新手需要注意的如下&#xff1a; 1、Android Studio版本&#xff0c;根据自己的Android Studio版本对应决定了你所兼容的AGP&#xff08;Android…

GPU上没程序在跑但是显存被占用

原因&#xff1a;存在僵尸线程&#xff0c;运行完但是没有释放内存 查看僵尸线程 fuser -v /dev/nvidia*关闭僵尸线程 pkill -9 -u 用户名 程序名 举例&#xff1a;pkill -9 -u grs python参考&#xff1a;https://blog.csdn.net/qq_40206371/article/details/143798866

JAVA实战开源项目:蜗牛兼职平台(Vue+SpringBoot) 附源码

本文项目编号 T 034 &#xff0c;文末自助获取源码 \color{red}{T034&#xff0c;文末自助获取源码} T034&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 平台架构1.2 管理后台1.3 用户网页端1.4 技术特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景…

DeepSeek LLM解读

背景&#xff1a; 量化巨头幻方探索AGI&#xff08;通用人工智能&#xff09;新组织“深度求索”在成立半年后&#xff0c;发布的第一代大模型DeepSeek试用地址&#xff1a;DeepSeek &#xff0c;免费商用&#xff0c;完全开源。作为一家隐形的AI巨头&#xff0c;幻方拥有1万枚…

用WinForm如何制作简易计算器

首先我们要自己搭好页面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace _7_简易计算…

Luzmo 专为SaaS公司设计的嵌入式数据分析平台

Luzmo 是一款嵌入式数据分析平台&#xff0c;专为 SaaS 公司设计&#xff0c;旨在通过直观的可视化和快速开发流程简化数据驱动决策。以下是关于 Luzmo 的详细介绍&#xff1a; 1. 背景与定位 Luzmo 前身为 Cumul.io &#xff0c;专注于为 SaaS 公司提供嵌入式分析解决方案。…

Openfga 授权模型搭建

1.根据项目去启动 配置一个 openfga 服务器 先创建一个 config.yaml文件 cd /opt/openFGA/conf touch ./config.yaml 怎么配置&#xff1f; 根据官网来看 openfga/.config-schema.json at main openfga/openfga GitHub 这里讲述详细的每一个配置每一个类型 这些配置有…

【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令

文章目录 指令格式&#xff08;重点&#xff09;1. 立即数2. 寄存器位移 一、数据传送指令1. MOV指令2. MVN指令3. LDR指令 二、数据计算指令1. ADD指令1. SUB指令1. MUL指令 三、位运算指令1. AND指令2. ORR指令3. EOR指令4. BIC指令 四、比较指令五、跳转指令1. B/BL指令2. l…

星火大模型接入及文本生成HTTP流式、非流式接口(JAVA)

文章目录 一、接入星火大模型二、基于JAVA实现HTTP非流式接口1.配置2.接口实现&#xff08;1&#xff09;分析接口请求&#xff08;2&#xff09;代码实现 3.功能测试&#xff08;1&#xff09;测试对话功能&#xff08;2&#xff09;测试记住上下文功能 三、基于JAVA实现HTTP流…

lightweight-charts-python 包 更新 lightweight-charts.js 的方法

lightweight-charts-python 是 lightweight-charts.js 的 python 包装&#xff0c;非常好用 lightweight-charts 更新比较频繁&#xff0c;导致 lightweight-charts-python 内置的 lightweight-charts 经常不是最新的。 新的 lightweight-charts 通常可以获得性能改进和bug修复…

记录 | Docker的windows版安装

目录 前言一、1.1 打开“启用或关闭Windows功能”1.2 安装“WSL”方式1&#xff1a;命令行下载方式2&#xff1a;离线包下载 二、Docker Desktop更新时间 前言 参考文章&#xff1a;Windows Subsystem for Linux——解决WSL更新速度慢的方案 参考视频&#xff1a;一个视频解决D…

2025年01月27日Github流行趋势

项目名称&#xff1a;onlook项目地址url&#xff1a;https://github.com/onlook-dev/onlook项目语言&#xff1a;TypeScript历史star数&#xff1a;5340今日star数&#xff1a;211项目维护者&#xff1a;Kitenite, drfarrell, iNerdStack, abhiroopc84, apps/dependabot项目简介…

【Linux探索学习】第二十七弹——信号(一):Linux 信号基础详解

Linux学习笔记&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 前面我们已经将进程通信部分讲完了&#xff0c;现在我们来讲一个进程部分也非常重要的知识点——信号&#xff0c;信号也是进程间通信的一…

海外问卷调查渠道查如何设置:最佳实践+示例

随着经济全球化和一体化进程的加速&#xff0c;企业间的竞争日益加剧&#xff0c;为了获得更大的市场份额&#xff0c;对企业和品牌而言&#xff0c;了解受众群体的的需求、偏好和痛点才是走向成功的关键。而海外问卷调查才是获得受众群体痛点的关键&#xff0c;制作海外问卷调…

《STL基础之vector、list、deque》

【vector、list、deque导读】vector、list、deque这三种序列式的容器&#xff0c;算是比较的基础容器&#xff0c;也是大家在日常开发中常用到的容器&#xff0c;因为底层用到的数据结构比较简单&#xff0c;笔者就将他们三者放到一起做下对比分析&#xff0c;介绍下基本用法&a…

一组开源、免费、Metro风格的 WPF UI 控件库

前言 今天大姚给大家分享一个开源、免费、Metro风格的 WPF UI 控件库&#xff1a;MahApps.Metro。 项目介绍 MahApps.Metro 是一个开源、免费、Metro风格的 WPF UI 控件库&#xff0c;提供了现代化、平滑和美观的控件和样式&#xff0c;帮助开发人员轻松创建具有现代感的 Win…

网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践

引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…

通义灵码插件保姆级教学-IDEA(安装及使用)

一、JetBrains IDEA 中安装指南 官方下载指南&#xff1a;通义灵码安装教程-阿里云 步骤 1&#xff1a;准备工作 操作系统&#xff1a;Windows 7 及以上、macOS、Linux&#xff1b; 下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本&#xff0c;通义灵码与以下 IDE 兼容&…

工业级 RAG 实现 - QAnything

文章目录 1. QAnything简介2. QAnything 安装教程2. 1 安装软件包2.2 运行QAnything框架2.3 访问前端页面 3. QAnything 简单使用3.1 创建知识库3.2 创建聊天机器人3.3 关联知识库3.4 测试 4. QAnything 的分析&#xff1a;4. 1 QAnything 架构4. 2 两阶段检索4. 2.1 一阶段检索…