<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>async-geotiff</title><link>https://async-geotiff-rs.pages.dev/zh/</link><description>Recent content on async-geotiff</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 31 Aug 2026 11:56:37 +0800</lastBuildDate><atom:link href="https://async-geotiff-rs.pages.dev/zh/index.xml" rel="self" type="application/rss+xml"/><item><title>环境要求</title><link>https://async-geotiff-rs.pages.dev/zh/docs/get-started/requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/get-started/requirements/</guid><description>&lt;h2 id="library"&gt;库与示例&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Rust 1.88 或更高版本，与 &lt;code&gt;Cargo.toml&lt;/code&gt; 保持一致。&lt;/li&gt;&#10;&lt;li&gt;默认 feature 集需要系统 &lt;code&gt;libproj&lt;/code&gt; 9.x。&lt;/li&gt;&#10;&lt;li&gt;从仓库开发时需要 Git。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;macOS：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-6b2fe0e8-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-6b2fe0e8-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install proj&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Debian 或 Ubuntu：&lt;/p&gt;</description></item><item><title>什么是 async-geotiff？</title><link>https://async-geotiff-rs.pages.dev/zh/docs/overview/what-is-async-geotiff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/overview/what-is-async-geotiff/</guid><description>&lt;p&gt;&lt;code&gt;async-geotiff&lt;/code&gt; 是一个 Rust 库，用于把云优化 GeoTIFF（COG）转换为带样式的&#10;XYZ 地图瓦片。它只读取生成目标瓦片所需的字节范围，解码原生 TIFF 块，按需&#10;重投影，应用渲染样式，最后编码输出。&lt;/p&gt;</description></item><item><title>示例 HTTP API</title><link>https://async-geotiff-rs.pages.dev/zh/docs/reference/tile-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/reference/tile-api/</guid><description>&lt;p&gt;HTTP API 属于 &lt;code&gt;examples/serve.rs&lt;/code&gt;，不会进入库本身的依赖表面。&lt;/p&gt;&#10;&lt;h2 id="routes"&gt;路由&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;方法与路径&lt;/th&gt;&#10; &lt;th scope="col"&gt;用途&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /tiles/{tms}/{z}/{x}/{y}.{ext}&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;从选中的单个 COG 渲染瓦片。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /mosaic/tiles/{tms}/{z}/{x}/{y}.{ext}&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;从配置的 mosaic 或 STAC 数据源渲染瓦片。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /datasets&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;列出 &lt;code&gt;data/&lt;/code&gt; 下发现的 TIFF 文件。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /cache/stats&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;返回解码块缓存统计。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /formats&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;返回当前服务编译支持的输出格式。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET /bounds&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;返回示例查看器使用的边界。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;GET&lt;/code&gt;、&lt;code&gt;HEAD /data/{name}&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;通过范围请求提供本地 TIFF。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;支持的 TMS 名称是 &lt;code&gt;WebMercatorQuad&lt;/code&gt; 和 &lt;code&gt;WorldCRS84Quad&lt;/code&gt;。扩展名支持 &lt;code&gt;png&lt;/code&gt;，&#10;以及 feature 控制的 &lt;code&gt;webp&lt;/code&gt;、&lt;code&gt;jpg&lt;/code&gt;、&lt;code&gt;jpeg&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>样式与波段计算</title><link>https://async-geotiff-rs.pages.dev/zh/docs/guides/styling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/guides/styling/</guid><description>&lt;p&gt;Rust API 与示例服务的查询字符串使用同一个 &lt;code&gt;TileStyle&lt;/code&gt; 模型。样式会在昂贵的 COG&#10;读取和渲染工作之前完成校验。&lt;/p&gt;&#10;&lt;h2 id="recipes"&gt;常用配方&#10;&lt;/h2&gt;&#10;&lt;p&gt;三波段自然色 RGB：&lt;/p&gt;</description></item><item><title>Cargo features</title><link>https://async-geotiff-rs.pages.dev/zh/docs/reference/cargo-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/reference/cargo-features/</guid><description>&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Feature&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: right"&gt;默认&lt;/th&gt;&#10; &lt;th scope="col"&gt;作用&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;proj&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;是&lt;/td&gt;&#10; &lt;td&gt;通过系统 &lt;code&gt;libproj&lt;/code&gt; 启用通用 CRS 转换。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;mosaic&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;是&lt;/td&gt;&#10; &lt;td&gt;启用 &lt;code&gt;MosaicTiler&lt;/code&gt;、&lt;code&gt;MosaicSource&lt;/code&gt;、MosaicJSON 和异步资产扇出。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;webp&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;否&lt;/td&gt;&#10; &lt;td&gt;通过 &lt;code&gt;image&lt;/code&gt; 启用无损 WebP 编码。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;jpeg&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;否&lt;/td&gt;&#10; &lt;td&gt;启用 JPEG；由于 JPEG 没有 alpha，透明度会被压平。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;stac&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;否&lt;/td&gt;&#10; &lt;td&gt;添加 STAC 客户端，并隐含启用 &lt;code&gt;mosaic&lt;/code&gt;。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;perf-tracing&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;否&lt;/td&gt;&#10; &lt;td&gt;发出更详细的内部耗时事件。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;tokio-console&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: right"&gt;否&lt;/td&gt;&#10; &lt;td&gt;启用 Tokio Console，并隐含启用 &lt;code&gt;perf-tracing&lt;/code&gt;。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;示例：&lt;/p&gt;</description></item><item><title>架构</title><link>https://async-geotiff-rs.pages.dev/zh/docs/overview/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/overview/architecture/</guid><description>&lt;p&gt;库将异步范围 I/O 与 CPU 密集型的解码、重投影、渲染和编码工作分离。应用只需组合&#10;自己需要的公共层。&lt;/p&gt;&#10;&lt;pre class="td-mermaid-source"&gt;&lt;code class="language-mermaid"&gt;flowchart LR&#10; Client[HTTP 客户端或 Rust 调用方] --&amp;gt; Style[TileStyle]&#10; Client --&amp;gt; Tiler[Tiler]&#10; Tiler --&amp;gt; Grid[TileMatrixSet]&#10; Tiler --&amp;gt; Reader[CogReader]&#10; Reader --&amp;gt; Store[object_store / HTTP 范围读取]&#10; Reader &amp;lt;--&amp;gt; Cache[共享 BlockCache]&#10; Reader --&amp;gt; CPU[CpuLimiter &amp;#43; spawn_blocking]&#10; CPU --&amp;gt; Warp[重投影与重采样]&#10; Warp --&amp;gt; Render[拉伸 / 色带 / 合成]&#10; Style --&amp;gt; Render&#10; Render --&amp;gt; Encode[PNG / WebP / JPEG]&#10; Encode --&amp;gt; Result[Option&amp;amp;lt;Bytes&amp;amp;gt;]&#10; Mosaic[MosaicTiler] --&amp;gt; ReaderPool[ReaderPool]&#10; ReaderPool --&amp;gt; Reader&#10; Mosaic --&amp;gt; Render&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="components"&gt;主要组件&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;组件&lt;/th&gt;&#10; &lt;th scope="col"&gt;职责&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;CogReader&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;打开 COG，读取元数据和概览层，选择并拼接原生块，以及采样点或窗口。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;BlockCache&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;在统一字节预算下跨 reader 共享解码块，并合并并发冷读取。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;Tiler&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;规划瓦片、选择概览层、读取源窗口、按需重投影并输出编码字节。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;TileStyle&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;在渲染前解析并校验 titiler 风格的查询参数。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;MosaicTiler&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查找资产、通过池打开 reader、重投影各资产、合并重叠像元并统一渲染。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;CpuLimiter&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;限制跨 reader 与 tiler 的 CPU 密集型阻塞任务。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="tile-flow"&gt;瓦片数据流&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;code&gt;TileCoord&lt;/code&gt; 在受支持的 TileMatrixSet 中定位目标瓦片。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Tiler&lt;/code&gt; 计算目标边界并检查其是否与源数据集相交。&lt;/li&gt;&#10;&lt;li&gt;根据目标地面分辨率选择合适的概览层。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;CogReader&lt;/code&gt; 通过范围请求加载缺失的原生块，并复用缓存命中。&lt;/li&gt;&#10;&lt;li&gt;同 CRS 使用仿射快速路径；跨 CRS 使用反向重投影。EPSG:4326 与 EPSG:3857&#10;之间有闭式快速路径，其他组合需要 &lt;code&gt;proj&lt;/code&gt; feature。&lt;/li&gt;&#10;&lt;li&gt;渲染管线依次处理 nodata、scale/offset、波段计算、拉伸、色带或 RGB 合成，&#10;最后调用目标编码器。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="concurrency"&gt;并发模型&#10;&lt;/h2&gt;&#10;&lt;p&gt;Tokio 负责异步元数据与字节范围 I/O。解码、拼接、重投影、镶嵌归并、渲染和编码&#10;通过受信号量限制的 &lt;code&gt;spawn_blocking&lt;/code&gt; 运行。应用可以把一个 &lt;code&gt;Arc&amp;lt;BlockCache&amp;gt;&lt;/code&gt; 注入&#10;单 COG 与 mosaic reader，避免解码缓存预算倍增；也可以在非 mosaic 的&#10;&lt;code&gt;CogReader&lt;/code&gt;/&lt;code&gt;Tiler&lt;/code&gt; 之间注入同一个 &lt;code&gt;CpuLimiter&lt;/code&gt;。当前 &lt;code&gt;MosaicTiler&lt;/code&gt; 使用自己的内部&#10;limiter，无法加入该 permit 预算，因此混合流量没有自动的进程级 CPU 上限。&lt;/p&gt;</description></item><item><title>快速上手</title><link>https://async-geotiff-rs.pages.dev/zh/docs/get-started/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/get-started/quick-start/</guid><description>&lt;h2 id="run"&gt;克隆并运行&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-8fccc64e-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="4"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-8fccc64e-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/mapseekai/async-geotiff-rs.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; async-geotiff-rs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;COG_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://raw.githubusercontent.com/cogeotiff/rio-tiler/0b08b7f35a8b639cee2f35a0cb565034f7b55bfd/tests/fixtures/cog.tif&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cargo run --release --example serve -- &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$COG_URL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;固定提交版本的 &lt;code&gt;rio-tiler&lt;/code&gt; 测试文件约 800 KiB，是一个公开且支持 Range 的 COG，&#10;适合首次运行验证。冒烟测试完成后再替换为自己的 COG。服务默认监听&#10;&lt;code&gt;127.0.0.1:8080&lt;/code&gt;，并在启动成功后打印查看器与瓦片 URL。&lt;/p&gt;</description></item><item><title>镶嵌与 STAC</title><link>https://async-geotiff-rs.pages.dev/zh/docs/guides/mosaics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/guides/mosaics/</guid><description>&lt;p&gt;默认启用的 &lt;code&gt;mosaic&lt;/code&gt; Cargo feature 提供 &lt;code&gt;MosaicTiler&lt;/code&gt; 和 &lt;code&gt;MosaicSource&lt;/code&gt; trait；&#10;不需要镶嵌的应用可以关闭默认 features。由于这也会关闭 &lt;code&gt;proj&lt;/code&gt;，仍需通用 CRS 转换时&#10;请使用 &lt;code&gt;--no-default-features --features proj&lt;/code&gt;。数据源将瓦片坐标映射为资产列表；&#10;tiler 打开并重投影这些资产，归并重叠像元，然后统一渲染合成结果。&lt;/p&gt;</description></item><item><title>生产运行</title><link>https://async-geotiff-rs.pages.dev/zh/docs/guides/production/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/guides/production/</guid><description>&lt;h2 id="cache"&gt;共享一个缓存&#10;&lt;/h2&gt;&#10;&lt;p&gt;解码块缓存的默认预算是 512 MiB。拥有多个 reader 的服务应把同一个&#10;&lt;code&gt;Arc&amp;lt;BlockCache&amp;gt;&lt;/code&gt; 注入全部 reader 和 mosaic，并为每个不同 COG 使用稳定的源 ID，&#10;避免缓存键冲突。&lt;/p&gt;</description></item><item><title>示例服务配置</title><link>https://async-geotiff-rs.pages.dev/zh/docs/reference/runtime-configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/reference/runtime-configuration/</guid><description>&lt;p&gt;以下变量配置 &lt;code&gt;cargo run --example serve&lt;/code&gt;。它们是示例服务约定，不是库的全局配置。&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;变量&lt;/th&gt;&#10; &lt;th scope="col"&gt;默认值&lt;/th&gt;&#10; &lt;th scope="col"&gt;含义&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_BIND&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;127.0.0.1:8080&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;HTTP 服务监听地址。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_BLOCK_CACHE_MB&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;512&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;共享解码块缓存容量（MiB），必须为正数。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_MAX_DECODE_TASKS&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;可用并行度&lt;/td&gt;&#10; &lt;td&gt;最大并发解码/拼接 CPU 任务数，必须为正数。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_MAX_TILE_TASKS&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;可用并行度&lt;/td&gt;&#10; &lt;td&gt;最大并发重投影/渲染 CPU 任务数，必须为正数。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_PREFETCH_RING&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;围绕读取范围预取的原生块圈数；&lt;code&gt;0&lt;/code&gt; 为关闭。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_SLOW_TILE_MS&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;未设置&lt;/td&gt;&#10; &lt;td&gt;超过此正整数毫秒阈值时发出慢瓦片警告。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_MOSAIC&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;未设置&lt;/td&gt;&#10; &lt;td&gt;启动时加载的 MosaicJSON 文件路径。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_STAC_URL&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;未设置&lt;/td&gt;&#10; &lt;td&gt;固定 STAC API URL；需要 &lt;code&gt;stac&lt;/code&gt; 及后两个变量。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_STAC_COLLECTION&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;未设置&lt;/td&gt;&#10; &lt;td&gt;固定 STAC collection ID。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_STAC_ASSET_KEY&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;未设置&lt;/td&gt;&#10; &lt;td&gt;固定 STAC COG 资产 key。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;ASYNC_GEOTIFF_TOKIO_CONSOLE&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;关闭&lt;/td&gt;&#10; &lt;td&gt;使用 &lt;code&gt;tokio-console&lt;/code&gt; 编译时，以 &lt;code&gt;1&lt;/code&gt;、&lt;code&gt;true&lt;/code&gt;、&lt;code&gt;yes&lt;/code&gt; 或 &lt;code&gt;on&lt;/code&gt; 启用 Tokio Console。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;RUST_LOG&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;async_geotiff=debug,warn&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;示例服务的标准 tracing 过滤器。&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;&lt;code&gt;ASYNC_GEOTIFF_MOSAIC&lt;/code&gt; 与 STAC 配置互斥；三个 STAC 变量必须一起提供。&lt;/p&gt;</description></item><item><title>作为库使用</title><link>https://async-geotiff-rs.pages.dev/zh/docs/get-started/library-usage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://async-geotiff-rs.pages.dev/zh/docs/get-started/library-usage/</guid><description>&lt;p&gt;仓库当前设置了 &lt;code&gt;publish = false&lt;/code&gt;，因此其他本地项目在开发期需要使用路径依赖。先在&#10;仓库旁创建应用；如果目录布局不同，请调整相对路径：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-8fb3aaa1-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="4"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-8fb3aaa1-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从 async-geotiff-rs 检出目录开始：&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cargo new async-geotiff-demo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; async-geotiff-demo&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-8fb3aaa1-fence-1" data-td-code data-td-code-auto-id&#10; data-td-language="toml" data-td-line-count="3"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-8fb3aaa1-fence-1-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;dependencies&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;async-geotiff&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;../async-geotiff-rs&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;tokio&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;features&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;macros&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rt-multi-thread&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;如果要避免系统 &lt;code&gt;libproj&lt;/code&gt;，同时保留示例服务使用的 mosaic API，可以在路径依赖上设置&#10;&lt;code&gt;default-features = false, features = [&amp;quot;mosaic&amp;quot;]&lt;/code&gt;；此时无法执行通用 CRS 转换。&lt;/p&gt;</description></item></channel></rss>