Skip to content

超图服务调用踩坑归集

地图服务

地图服务名称通常以 map-xxx 开头, 如 https://iserver.supermap.io/iserver/services/map-world/

配置通用的服务接口:

Map 服务接口

目前项目主要使用的接口有: restwms130

不赞成使用 wms110

SuperMapwms110 版本服务支持该值的目的是向后兼容

zxyTileImage 瓦片服务

zxyTileImage 瓦片服务

示例服务地址: https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China/zxyTileImage

wms130 服务

wms130 服务

示例服务地址: https://iserver.supermap.io/iserver/services/map-china400/wms130

数据服务

数据服务名称通常以 data-xxx 开头, 如 https://iserver.supermap.io/iserver/services/data-jingjin

配置通用的服务接口:

Data 服务接口

rest 服务

  • featureResults 资源

  • 数据服务: https://iserver.supermap.io/iserver/services/data-jingjin/rest/data/featureResults.geojson

  • 数据集格式: 数据源名称:数据集名称, 如 Jingjin:County_L

获取所有的数据服务要素结果

wfs2.0 服务

示例服务地址: https://iserver.supermap.io/iserver/services/data-world/wfs200

问题归集

wms 服务通过 sld_body 修改样式不生效

问题描述:

尝试用 SLD_BODY 自定义 wms 服务的样式, GetMap 请求格式如下,图层样式没有渲染

sld_body error

问题原因:

wms 服务目前只支持已定义的图层样式

iServer GetMap 请求

sld_body reply

地图服务获取 geojson 表述格式错误

问题描述:

请求url /iserver/services/map-text/rest/FZJZSSD@cs.geojson 与资源 root 的 url 模板不匹配

geojson error

问题原因:

  • 数据服务的要素才有 geojson 表述格式,是否支持 geojson 格式,可以看右侧目录栏
  • 地图服务和数据服务属于不同的服务类型,需要重新发布服务并勾选 rest 接口

报错:400 ,msg:对象已经被释放

release error

问题原因:

可能是数据库数据不同步,先用文件型数据源试下接口请求是否正确

wfs2.0 服务获取描述文档成功,获取要素的时候报错

问题描述:

wfs error1

wfs error2

问题原因:

  • iserver 版本为 iserver 2023 11i ,不支持 geojson 输出

supermap wfs2.0 执行 GetFeature 操作支持 outputFormat=json 输出,但是 xml 表述文档中没有加上<ows:Value>json</ows:Value>, 猜测是这个原因导致 arcgis 提示不支持

升级 iserver 版本

wfs2.0服务的点击事件拿不到要素全部属性值

问题描述:

有个需求为点击地块展示详情,但是获取到的要素只有部分属性值

wfs error3

wfs error4

问题原因:

iServerGetFeature 请求使用 FILTER 参数,编码语言为 urn:ogc:def:query Language:OGC-FES:Filter

可以通过 esri_wfs_id表名 传给后端,后端根据 esri_wfs_id 查询数据库,返回结果

如何获取地图当前状态的基本信息

获取服务的四至范围,用来实现服务跳转定位

列出当前地图中所有图层的图例

利用上面的问题6,获取到服务的四至范围,然后拼接成 BBOX 参数,

ts
const bbox = `${bounds.left},${bounds.bottom},${bounds.right},${bounds.top}`
const url = `https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China/legend.rjson?returnVisibleOnly=true&bbox=-20037508.34,-20037508.34,20037508.34,20037508.34`

基于 MIT 许可发布