MapBox 的 mapbox-gl-js 最近发布了 2.0 版本, 支持 3D 地形, 对于它的 3D 地形很感兴趣, 于是就研究了一下如何发布它的数据格式以及如何发布它需要的地形数据服务 (Terrain-RGB)。 Mapbox Terrain-RGB 简介 Mapbox Terrain-RGB 包含以 PNG 栅格切片编码的全球数字高程数据, 这些颜色值可以解码为以米为单位的原始高度。 您可以将 Terrain-RGB 数据用于各种视觉和分析应用程序, 从设计地形坡度和山体阴影样式到生成用于视频游戏的 3D 地形网格。 有关Terrain-RGB的一些细节: ... 阅读全文

将 Ubuntu 服务器从 18.04 升级到 20.04 , 在执行 do-release-upgrade 时提示无法检查新版本, 完整的错误信息如下: Checking for a new Ubuntu release Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings There is no development version of an LTS available. To upgrade to... 阅读全文

在 Docker 中运行的 PostgreSQL 数据库突然无法启动, 错误日志类似这样: PANIC,XX000,"could not locate a valid checkpoint record",,,,,,,,,"" LOG,00000,"startup process (PID 24) was terminated by signal 6: Aborted",,,,,,,,,"" LOG,00000,"aborting startup due to startup process failure",,,,,,,,,"" 这种情况多数情况下是在执行事务时, 数据库被强行关... 阅读全文

在 ArcGIS JS API 的开发中, FeatureLayer 可以说是让人又爱又恨, 特别是 ArcGIS JS API 4.x , FeatureLayer 从服务端加载数据的策略不可控制, 或者说默认的数据加载策略不适合所有的场景, 某些场景下, 需要从先加载数据, 然后在客户端创建 FeatureLayer 。 要在客户端创建 FeatureLayer , 根据 FeatureLayer 的文档, 这几个属性必须设置: fields 指定一个 Field 数组来描述 FeatureLayer 的架构, 并且必须包含一个类型为 oid 的字段; source 指... 阅读全文

由于项目安全评测的原因, 需要为 Postgres 数据库启用 ssl 连接, 特记录如下。 使用 openssl 生成 ssl 证书 生成证书需要 openssl 工具, 如果没有安装的话, 可以直接登录进去 Postgres 数据库的容器, 已经内置了 openssl , 而且兼容性也比较好。 生成证书的命令如下: openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem openssl rsa -in privkey.pem -passi... 阅读全文

单文件应用简介 .NET Core 3.x 发布的单文件应用是自解压程序, 解压路径貌似是通过 System.IO.Path.GetTempPath() 来确定的: Windows 系统 %TEMP%\.net\ macOS 系统 /var/folders/s8/q4c00lhx3k384hngtv9pmwv40000gn/T/.net/ Linux 系统 /var/tmp/.net/ .NET Core 3.x 发布的单文件应用偶尔会出现无法运行的错误, 需要删除上面目录中对应的 app 目录, 再运行就可以了; .NET 5.0 发布的自单文件应用可以... 阅读全文

ArcGIS JS API 基于古老的 JavaScript 框架 Dojo 开发, dojo 虽然是曾经的王者, 但是2020年的前端开发, 早已是 Angular、 React 和 Vue 三大框架的天下, JavaScript 的新特性可以说是日新月异, 国内也几乎没有人基于 dojo 进行开发, 因此本文介绍如何使用现代化的脚本 (ES6, ES7, ES2018 等, 以下统称 ES6+, TypeScript) 进行 ArcGIS JS API 开发。 ArcGIS JS API 模块化概述 ArcGIS JS API 提供的基于 dojo 的模块是 Asynchr... 阅读全文

ASP.NET Core 应用默认监听的端口是 5000 , 在调试或者部署的过程中经常需要指定监听的端口来来运行, 本文就这个问题, 进行一个总结, 可以通过下面的方法来指定运行端口。 使用命令行参数 使用命令行参数 --urls 是最常用的方法了, 测试或者开发环境下用的最多。 只需要在运行命令中添加这个参数即可, 如下所示: dotnet run --urls=http://localhost:5001/ 在 appsettings.json 中添加配置 如果倾向于使用配置文件, 可以在 appsettings.json 文件中添加 urls 节点, 如下所示: { ... 阅读全文

frp frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,并且为 http 和 https 应用协议提供了额外的能力。 最近需要将内网的一些服务转发出来, 在自己的电脑上随时可用, 于是就研究了 frp 的文档, 操作记录如下。 frp 服务器配置 要使用 frp 进行内网穿透, 必须有一台有互联网 IP 的服务器, 否则没办法架设 frp 服务器。 服务器上根据操作系统安装 frp 的服务端, frps , 配置如下: [common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 70... 阅读全文

在 ASP.NET Core 默认的应用程序模板中, 配置文件的处理如下面的代码所示: config.AddJsonFile( path: "appsettings.json", optional: true, reloadOnChange: true ); config.AddJsonFile( path: $"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true ); appsettings.json 和 appsettings.... 阅读全文

下面是使用 PostgreSQL 内置的工具 pg_dump 和 psql 对超级表 conditions 进行备份和恢复的步骤。 备份 备份超级表架构: pg_dump -s -d old_db --table conditions -N _timescaledb_internal | \ grep -v _timescaledb_internal > schema.sql 将备份超级表的数据备份到 CSV 文件: psql -d old_db \ -c "\COPY (SELECT * FROM conditions) TO data.csv DELIMITER... 阅读全文

Linux 的 SSH 服务不仅仅能够远程登录和管理,还可以在本地计算机和服务器之间建立 TCP 通道, 实现代理、内网穿透、暴露内网服务等功能,简单可靠。 动态端口转发 将向本地指定端口发送的请求通过 SSH 服务器向外转发。 比如将 SSH 服务器作为一个代理服务器。 #!/bin/bash -e ssh -C -T -N -D 127.0.0.1:8088 ubuntu@192.168.6.67 将 127.0.0.1:8088 作为一个 SOCKS4/5 的代理, 比如 curl --proxy socks5://127.0.0.1:8088 https://ww... 阅读全文