跳到主要内容

标准影像样式图源

版本8样式中的 raster 源和 raster 图层已接通共享平面和球面绘制。浏览器主线程、地图Worker和原生动态库使用同一编译、解码与资源调度;桌面复用共享会话。界面、按钮与来源链接由宿主实现。

将以下JSON保存为可访问的样式地址,然后通过 map.setStyle(url, {diff:false}) 加载。URL替换为实际服务;ArcGIS模板的顺序是级别、行、列,即 z/y/x。

{
  "version": 8,
  "sources": {
    "satellite": {
      "type": "raster",
      "tiles": ["https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"],
      "tileSize": 256,
      "minzoom": 0,
      "maxzoom": 18,
      "attribution": "Source: Esri, Vantor, Earthstar Geographics, and the GIS User Community"
    }
  },
  "layers": [{
    "id": "satellite", "type": "raster", "source": "satellite",
    "paint": {
      "raster-opacity": 1,
      "raster-resampling": "linear",
      "raster-brightness-min": 0,
      "raster-brightness-max": 1,
      "raster-saturation": 0,
      "raster-contrast": 0,
      "raster-hue-rotate": 0,
      "raster-fade-duration": 0
    }
  }]
}

共同脚本与独立SDK

// @gis-api 0.5-session
// @permissions ["project.read", "map.write"]
import { map } from 'sqsmap';
map.setStyle('https://www.sqsmap.com/styles/arcgis-satellite.json', { diff: false });
await map.sqs.flush();
console.log(await map.sqs.getCapabilities());
console.log(await map.sqs.getAttributions());

flush 确认命令应用,不代表下载完成。独立浏览器SDK使用 view.flush()、view.sqs.getCapabilities()、view.getAttributions() 与 view.onAttributionsChange()。原生仍使用 sqsm_map_set_style_json,参数为 {"style":"样式绝对HTTP(S)地址","options":{"diff":false}}。宿主读取请求队列、按 resource.maxBytes 有界下载并回传字节;核心不内置HTTP客户端。完整接入见原生API和资源策略。

完整HTML/CSS/JavaScript包含加载、北/南半球、缩放和销毁的全部按钮事件、错误处理、命令水位、署名监听与页面退出清理。ArcGIS先直连,连通性失败时使用本站转发;只有匹配影像服务的Tile请求采用此策略。示例显示Esri和World Imagery来源链接,第三方来源要求由使用方核对并保留;元数据可能更新,已知署名不能因获取失败而消失。本站提供可直接查看的标准样式。

源与图层规则

  • 源接受互斥的 url / tiles、TileJSON、相对模板、1–8个镜像、XYZ/TMS、bounds和显式元数据覆盖,约束与矢量瓦片源一致。TileJSON无效时不提交半份模板、范围或署名。
  • tileSize 仅接受256或512,默认512。公共缩放基准为512像素;256源在相同地图缩放下请求高一级物理瓦片。源级别必须为0–24整数,默认0/22;低于源范围不请求,高于最大级别使用已有瓦片过度缩放。
  • PNG、JPEG、WebP解码为直通RGBA8;每张编码最多4MiB、边长最多512、解码最多1MiB。矢量/影像共享64MiB CPU瓦片缓存;平面影像纹理单独最多64MiB/512个绘制四边形。超限明确报告,释放非当前视野数据;替换和销毁释放纹理与代数。
  • raster-opacity / brightness为0–1,saturation / contrast为-1–1,hue为有限角度(本机范围±10亿度,绘制前归一化)。数值和基于zoom的stops/step/interpolate可用;要素/状态表达式、非法值与未知属性明确拒绝。
  • raster-resampling 接受linear/nearest。透明度与颜色调整真实作用于纹理;影像、填充、线、图标和文字在同一平面样式顺序中绘制。隐藏或不在层缩放范围的影像不调度瓦片。bounds只筛选瓦片,不裁其内部图像。
  • 影像层不能使用vector/GeoJSON源、source-layer或要素filter;矢量层也不能引用raster源。署名保留源与引用层的关联。

当前边界

styleRasterPlanarSources、styleRasterGlobeSources 和 styleRasterFade 为true;完整 styleRasterSources 与跨端平面倾斜 styleRasterPitchedSources 仍为false。球面倾斜使用共同地球仪相机,Rust倾斜绘制也支持影像;共同平面倾斜相机与地形贴覆继续接通。当前能力不代表MapLibre完整兼容。

共同SourceStore的raster/vector/raster-dem生命周期、共同脚本的setStyle(object)、样式增量修改、移动脚本宿主、外机及正式发行仍待后续任务。这里的标准样式影像不是现有独立XYZ/GIS影像层的别名。当前页面与匹配SDK为开发快照;本机软件GPU验收不代表硬件、移动或线上部署已完成。

地球仪与完整事件代码

同一已加载的影像样式可以调用 map.setProjection({type:'globe'}),再用 map.jumpTo({center:[0,45],zoom:1,pitch:30}) 控制球面视角。返回平面使用 map.setProjection({type:'mercator'})。透明度、颜色、最近邻采样、TMS、256瓦片和父瓦片裁剪继续使用同一参数;球面网格保留墨卡托纹理采样和深度遮挡。

地球仪影像完整HTML包含加载、北/南半球、级别、球面、平面、球面倾斜和销毁的全部按钮处理器、来源监听及清理;共同脚本可原样用于网页主线程、严格Worker、原生一次性和持续脚本入口。事件订阅需持续脚本会话,原生一次性入口没有长期订阅。flush确认命令应用,流式瓦片和曲面几何随后到达,调用者需按实际加载/画面状态等待。

三维影像保留独立64MiB纹理、64MiB顶点与512片预算,多个图层/父瓦片共享不可变图片纹理。超限明确报告。地形贴覆和共同SourceStore完整生命周期继续实施;不将核心绘制能力冒充尚未接通的各宿主相机能力。

瓦片渐变

raster-fade-duration 使用毫秒,默认300,接受非负有限常量及zoom的stops/step/interpolate表达式;0立即显示。上面的例子显式关闭渐变以便观察颜色。新影像淡入;可用的父图按相同区域裁剪,与新图混合后再应用一次图层opacity,透明图不会重复叠加。父图保留字节计入共享CPU缓存预算;过渡结束释放保留图,GPU纹理按实际使用清理。进行中的可见过渡每16毫秒请求重绘,最后完整画一帧,然后停止主动重绘。

完整渐变HTML列出放大、球面/平面切换、署名、错误和销毁的全部处理器,可选主线程或严格Worker。代码中的默认影像来源保留Esri署名和来源链接,直连失败时使用可配置本站代理。共享脚本可使用同一Style JSON属性;styleRasterFade 只表示瓦片渐变,不表示视频、逐属性transition或完整SourceStore已完成。语义参考MapLibre影像属性,渲染与资源实现由SqsMap自行提供。

共同瓦片URL模板补充quadkey、bbox、prefix、ratio及实际密度切换;本文原批次证明保留,完整图源参数仍另列待办。

有效瓦片元数据说明当前显式覆盖、实际尺寸/DEM编码,以及刷新等待和失败的数据保留;本文早期证明不重标版本。