- 博客(30)
- 收藏
- 关注
原创 前端又要凉了吗
你真让它去生成一个基本的 REST 服务、一个 CRUD 的接口、甚至一个完整的权限管理模块,它给出的结果往往已经能跑在服务器上。而那些被自动生成的、可重复的、模式化的后端代码,本质上并不是“人类能力”,而是“体力劳动式代码”,迟早会被工具吞掉。会用 AI 的开发者,不会失业。”模型越来越强,能写页面、能生成代码、能补齐组件,似乎把前端这件事推向了“一个 prompt 就够了”的方向。这些地方,确实没什么“不可替代性”,因为逻辑本身简单,领域知识浅,变化模式固定,AI 的优势正好压着你的技能点。
2025-12-04 17:22:46
304
原创 PyroSAR 安装后出现 “No module named _gdal_array”
Python 在 import gdal_array 时能找到纯 Python 的接口文件,却找不到对应的 _gdal_array.so 扩展文件,多半是被之前的版本覆盖、或者 pip 缓存里存了残缺的 wheel,导致 GDAL 的 Python Bindings 不完整。这个错误最直观的表现就是 GDAL 的 Python 扩展模块没加载成功,而 _gdal_array 正好属于 GDAL 的底层二进制扩展。装完之后,再运行同样的代码,问题就消失了。为什么这样做有效呢?
2025-12-02 01:52:17
298
原创 Docker 环境下 GeoPandas/Fiona 报错
摘要: 使用Docker部署FastAPI时,选用python:3.11-slim镜像导致用户上传SHP文件报错。错误显示缺少libexpat.so.1系统库,而非Python包问题。原因是GIS相关库(如Fiona)依赖底层C库(GDAL、Expat等),而slim镜像未包含这些系统依赖。解决方法是修改Dockerfile,添加libexpat1、gdal-bin等系统库安装命令。经验教训:使用轻量镜像时,需额外安装Python包依赖的系统级C库,尤其是GIS相关功能。
2025-10-10 16:46:00
404
原创 在 Capacitor 应用中实现跳转高德地图 App 进行路线规划
本文介绍了在Capacitor移动应用中实现跳转至高德地图App进行路线规划的方法。通过使用高德提供的URLScheme(如amapuri://)实现深度链接,可以直接唤起高德客户端;若未安装则自动跳转网页版导航。关键点包括:构造含终点坐标的deeplink、设置兜底逻辑(10秒后打开网页版)、注意新旧API差异。该方法使Web应用获得接近原生体验,提升了用户导航便利性。
2025-09-17 22:04:10
827
原创 一次因表单默认提交导致的白屏排查记录
摘要:开发补充耕地系统时遇到表单提交导致页面白屏的问题。排查发现是submit按钮触发了浏览器的默认表单提交行为,导致页面刷新而非执行Vue逻辑。解决方法是在form上添加@submit.prevent或修改按钮类型为button,阻止默认提交行为。该问题揭示了单页应用中容易忽视的HTML基础机制。
2025-09-17 21:28:07
294
原创 Capacitor 打包后接口访问不到的排查经历
【摘要】开发者使用Quasar+Capacitor6构建Android应用时,发现开发模式下接口正常,但打包成APK后无法获取验证码。通过调整Capacitor配置强制使用HTTP协议无效后,启用WebView远程调试功能发现跨域问题:WebView默认将origin视为http://localhost,而FastAPI后端未配置该来源。最终通过精准配置CORS白名单(包括http://localhost等具体域名)并保持凭证模式的一致性解决问题。关键收获是:1)启用WebView调试可查看真实网络请求;2
2025-09-16 15:27:44
892
原创 解决 Quasar + Capacitor 构建 Android APK 时的安装包异常、 “packageInfo is null“ 错误
摘要:在Quasar和Capacitor开发Android应用时,遇到"解析软件包时出现问题:packageInfoisnull"错误。原因是Android7.0+强制要求v2/v3签名,而手动签名仅使用了jarsigner的v1签名。解决方案有两种:1)通过Gradle配置自动签名,简化流程;2)手动处理时先用zipalign对齐,再用apksigner签名。最终推荐使用Gradle自动签名方案,确保签名符合要求,避免安装错误。
2025-09-16 00:34:35
2003
原创 别再说GIS开发不值钱:WebGIS不只是写接口
本文探讨了GIS开发与计算机开发的差异与互补性。作者通过实际项目经历指出,GIS开发的核心价值在于对地理专业知识的掌握,如坐标系、空间分析、拓扑关系等,这些"地理认知"问题往往比代码本身更关键。文章强调优秀的GIS开发需要同时具备地理抽象能力和工程实现能力,而计算机开发者若补足地理知识也能在该领域表现出色。作者反对"计算机随便学学就能吊打GIS"的片面观点,主张跨学科协作才是最优解:地理向工程师确保数据准确性,计算机向工程师保障系统稳定性。
2025-08-20 23:54:53
300
原创 Cesium中3D瓦片与多边形面的色彩重叠问题分析与解决
摘要:在开发Cesium光伏厂3D可视化系统时,遇到多边形与3D瓦片模型表面色彩重叠问题。分析发现这是由于深度缓冲(Z-Buffer)机制导致的"深度冲突"(Z-fighting),当几何体深度位置接近时GPU无法准确判断显示顺序。通过为光伏板(高9米)和组串(高8米)设置0.6米的高度偏移,创造垂直空间分离,有效解决了渲染问题。同时指出使用柱体(extrudedpolygon)比平面多边形更能真实反映光伏板倾斜安装的实际状况。
2025-08-12 02:10:37
366
原创 高德地图报错Uncaught Error: Invalid Object: LngLat(NaN, NaN)
在使用高德地图API时遇到"InvalidObject:LngLat(NaN,NaN)"报错,原因是地图容器尺寸计算失败。当容器使用position:relative时,由于Quasar UI中父元素默认高度为0,导致地图无法获取有效尺寸。解决方法有:1) 将容器改为position:absolute,使其脱离文档流;2) 确保所有父元素(html到容器)设置height:100%,使relative定位也能获取正确尺寸。问题本质在于地图初始化需要获取明确的容器尺寸,否则会导致坐标计算异
2025-06-18 19:44:03
771
原创 补充耕地质量评价系统-项目开发日记
本文介绍了"补充耕地质量评价系统"WebGIS项目的开发过程,主要包含三部分内容:1. 项目架构采用Vue3+Quasar+Pinia技术栈搭建前端框架;2. 实现基于JWT的用户认证系统,通过axios拦截器和路由守卫解决安全访问问题;3. 开发个人中心模块,利用Object.assign实现用户数据的响应式更新。项目重点关注移动端开发,已解决用户退出后仍能访问受保护页面的安全隐患。下一步将进行OpenLayers地图模块的核心功能开发。
2025-06-12 13:39:19
619
原创 QGIS 将 Shapefile 导入 PostGIS 数据库
QGIS、PostgreSQL和PostGIS是地理信息系统(GIS)中常用的工具。QGIS是一款开源的桌面GIS软件,用于可视化和编辑空间数据。PostgreSQL是一个强大的关系型数据库管理系统,而PostGIS是其空间数据库扩展,使PostgreSQL能够存储和查询空间数据。三者结合,PostgreSQL+PostGIS提供后端数据存储和管理,QGIS则作为前端工具进行数据可视化和编辑。本文以“场所.shp”文件为例,演示了如何在QGIS中加载Shapefile文件
2025-05-13 13:45:56
1785
原创 使用 FastAPI + PostGIS 开发时,如何优雅地将几何字段 geom 返回给前端
在开发空间类Web应用时,使用FastAPI、SQLAlchemy和GeoAlchemy2处理PostGIS数据库中的地理信息时,如何正确返回geom字段给前端是一个常见问题。最初使用ORM查询时,由于geom字段返回的是WKBElement类型而非字符串,导致FastAPI无法自动序列化并报错。解决方案包括:使用SQLAlchemy Core查询语法,结合ST_AsGeoJSON函数将几何字段转换为GeoJSON字符串,并在服务层将字符串转换为字典对象,以确保前端接收到结构化的GeoJSON数据。
2025-05-13 00:57:27
1215
原创 若依 FastAPI + Vue3 项目 Docker 部署笔记( 启动器打包教程)
本文记录了将start.bat打包成.exe启动器的详细教程,适合项目交付或导师演示用。
2025-05-01 12:04:55
1379
原创 基于若依RuoYi-Vue3-FastAPI 的 Docker 部署记录
最近在参与导师项目开发过程中,我选择基于作为系统框架,通过 Docker 实现前后端、数据库和缓存环境的容器化部署。
2025-05-01 11:19:52
1801
原创 浏览器同源策略:从“源”到安全限制的全面解析
在浏览器中,“源”是 Web 安全的核心概念。一个“源”由三部分组成协议(Protocol):如http://https://ftp://域名(Host):如端口(Port):如:80(HTTP 默认)、:443(HTTPS 默认)示例和是同源(端口隐式相同)。和是不同源(协议、子域名不同)。同源(Same Origin):两个 URL 的协议、域名、端口完全一致。异源(Cross-Origin):任意一部分不同即为异源。判断示例URL1URL2是否同源✅ 是。
2025-01-29 21:58:31
2059
原创 Cesium Cesium3DTile API 介绍
这些建筑物的数据很庞大,无法一次性加载全部,所以下来的数据是分割成多个瓦片的,每个瓦片包含一部分城市的数据。在 3D Tiles 中,数据被分割成多个瓦片(tiles),每个瓦片包含一小部分场景的几何数据和其他信息。是与 3D Tiles 数据集中的单个瓦片(tile)相关的类。就是一个瓦片对象,它用于描述这些几何体数据如何加载、渲染以及如何在场景中与其他瓦片一起展示。就是这些瓦片的一部分,包含了建筑物的几何数据。当瓦片被加载后,它的。类中的很多属性和方法是与瓦片的渲染、加载和父子关系相关的。
2025-01-26 11:51:07
1262
原创 Cesium ArcGisMapServerImageryProvider API 介绍
在Cesium中,通过使用这个API,你可以将ArcGIS提供的地图服务直接集成到3D地图中。是一个非常有用的API,它允许开发者使用由ArcGIS MapServer提供的切片图像作为背景图层。这个API对于需要在Web应用中整合ArcGIS地图服务的开发者来说,提供了一个便捷的接口。就像你在地图上铺了一层卫星图像,然后在上面展示你的3D模型,用户可以从全球任何角度查看你的模型,背景都是清晰的卫星图像。方法加载 ArcGIS 的卫星图层,然后让用户在虚拟世界中“飞行”,同时看到真实世界的卫星影像。
2025-01-25 21:20:35
1905
原创 Cesium Appearance API 介绍
类在 Cesium 中应用非常广泛,主要用于控制几何体的外观,尤其是在自定义渲染效果时。在展示一个城市的 3D 模型时,你可能希望给建筑物设置不同的材质效果,让建筑物根据不同的光照条件显示不同的效果;它负责提供完整的 GLSL 顶点着色器和片段着色器代码,以及渲染状态,这些都决定了一个原始图形(Primitive)如何被渲染出来。比如,决定一个模型是透明的还是不透明的,或者它是否应该有某种特殊的材质效果。就是图形的“外表”,它让原始几何体不仅仅是一个点、线或面,而是拥有了颜色、纹理、透明度等可视化效果。
2025-01-25 21:12:24
997
原创 Cesium AnchorPointDirect API 介绍
它是 Cesium 中用于处理地理锚点的 API。是 Cesium 的模型扩展的一部分,特别用于处理全球定位模型(GPM)框架中的锚点。
2025-01-25 20:57:05
847
原创 使用 Cesium 查询属性名与属性值
在我最近的项目中,我开发一个,目的是通过来渲染地下管网的 3D 模型,并实现属性查询功能。由于这是一个,不依赖后端服务器来查询属性,因此我选择使用,直接从 3D Tiles 数据中提取属性名并进行属性查询。在这个过程中,我的管网模型被切分成了格式,瓦片为文件,并且包含,用于存储每个模型实例的属性信息。在这篇博客中,我将分享如何利用 Cesium 的接口,通过图层名动态获取属性名,并进一步基于属性名和属性值查询管网信息。在使用渲染 3D Tiles 数据时,文件结构至关重要。
2024-12-31 17:39:39
1076
原创 解决在 Cesium 中加载 QGIS 瓦片地图错乱的问题
作为一个研究生,平时接触到很多地理信息系统(GIS)相关的技术,最近在使用和时遇到了一些挑战,今天想分享一下我的经验,尤其是如何解决在中加载导出的瓦片地图时出现的地图错乱问题。
2024-12-26 11:45:53
2262
原创 开发移动应用的快速指南:从 Quasar CLI 到 Capacitor
在 Web 应用开发中,是一个非常强大的框架,它可以帮助你轻松创建响应式的网页、桌面应用以及移动应用。通过 Quasar CLI 的模式,我们可以快速地将一个 Quasar 项目转化为移动应用,并且支持和平台。如果你已经在使用 Quasar CLI 并且熟悉基础的网页开发流程,那么将 Quasar 项目转换成一个移动应用将变得非常简单。下面,我将带你一步步完成从搭建 Quasar 项目到开发移动应用的整个流程。
2024-12-25 16:15:55
1515
原创 揭开 Cesium 坐标系统的神秘面纱——从 GIS 到虚拟地球的探索
在开始聊 Cesium 之前,我们得先了解一下什么是坐标系统,尤其是 GIS 中的坐标系统。坐标系统是用来描述地理空间中点的位置的,它相当于地球上的“身份证”。用它可以帮助我们精确定位任何一个地点,从北京的故宫到亚马逊的热带雨林,都可以通过坐标系统告诉我们它具体在哪里。地理坐标系统(Geographic Coordinate System, GCS)经纬度:最常见的坐标系统就是通过经度(Longitude)和纬度(Latitude)来定义位置。经度表示东西位置,纬度表示南北位置。
2024-12-25 15:59:19
851
原创 快速搭建 Quasar CLI
今天的文章就是带你一步步搭建一个 Quasar 项目,让你用最少的时间开始开发。Quasar 基于 Vue.js,它提供了一套完整的开发工具和 UI 组件库,帮你快速搭建高效、漂亮的应用程序。命令执行完后,Quasar 会开始构建你的应用,编译完成后它会自动在浏览器中打开项目页面。如果想更方便地管理 Quasar 项目,可以安装全局 CLI,这样你就可以在任何地方通过命令行执行 Quasar 相关操作了。,Quasar 都能满足你的需求,特别适合像我们这种研究生,用来快速实现一个功能齐全的项目。
2024-12-25 15:15:25
928
原创 cesium坐标测量,高度差测量
因为我做的是capacitor移动端,发现点击只有Cesium.ScreenSpaceEventType.LEFT_DOWN可以用,我就放了一个按钮用来停止。一共有6个图上测量功能,这篇文章先分享坐标测量和高度测量的代码。希望大家点点关注,可以多多交流!
2024-12-23 12:29:22
936
1
原创 cesium移动端capacitor读取本机文件
官方文档里对于Directory写的很详细,因为我要自行拷贝数据进平板,于是我选择了External,这个路径在Android/data/(你的软件包名)/files/里面,贴上我的代码。方法需要网络形式的 URL,而平板本地的文件路径无法直接满足此需求,因此本地的文件路径要转换为 Cesium 可识别的网络路径。最近做cesium移动端,地图瓦片,地形瓦片,模型都需要拷贝进荣耀平板里读取。这样就可以获取到文件的url,但是 Cesium 的。这样就可以用cesium读取各个地图瓦片,地形和模型了。
2024-12-20 12:21:07
709
原创 Capacitor GeoLocation 插件和 Web API 实现地理定位的记录
WebGIS研究生今日早餐:牛肉包+烧卖,外加一杯温热的燕麦豆奶,9点半到工位开始工作。今天在做地下管网可视化时需要一个实时定位的功能,我需要用 Capacitor 和 Cesium.js 实现一个基于地理定位的 3D 地图功能。项目的主要功能包括实时获取用户位置并在 Cesium 场景中同步更新相机位置。功能看似简单,但实现过程中却经历了一番波折,以下是我的踩坑经历。
2024-12-17 12:50:49
790
原创 cesium拾取管网属性功能
但是现在遇到一些问题,就是在选择完Feature,显示完属性后,cesium场景开始极度卡顿,目前没有找到原因,有没有大神可以交流赐教!最近在做移动端地下管网可视化系统时,做到一个属性查询功能。就是拾取一根管道,读取该管道属性并显示。接口),并将这些属性动态展示到页面的指定区域。接口,监听鼠标点击事件,使用。(要素),提取其属性信息(通过。
2024-12-16 12:06:26
572
原创 WebGIS 技术开发地下管网可视化系统
作为一名测绘工程专业的研究生,我一直对地理空间技术与实际应用的结合非常感兴趣。最近,我在开发一个地下管网可视化系统。这个项目是一个移动终端应用程序,旨在离线工作,解决现场检查人员在网络连接有限或没有网络连接的地区面临的挑战。现场条件往往缺乏稳定的互联网连接,尤其是在偏远或城市地下环境中。目前系统开发了大半,之前没有做过cesium在移动端的应用,中间踩了很多大坑,好在都一一解决了。分享一下我的部分系统截图。为了确保在各种移动设备上保持一致且精致的 UI,我选择了 Quasar 框架;前端选择了vue框架;
2024-12-12 22:27:19
625
基于Spring MVC框架的医院陪诊预约系统
2025-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅