首页 / 浏览问题 / WebGIS / 问题详情
web端source.getState()报错
5EXP 2025年08月02日

openlayers包与supermap的iclient-ol包的版本匹配,来自TileLayer的source的state属性的值为true,但网页报错Uncaught (in promise) TypeError: source.getState is not a function
    at VectorTileLayer.handleSourcePropertyChange_ (chunk-CKUMQJDI.js?v=572dae80:466:18)
    at VectorTileLayer.dispatchEvent (chunk-ASKVX2KB.js?v=572dae80:364:22)
    at VectorTileLayer.notify (chunk-ASKVX2KB.js?v=572dae80:618:12)
    at VectorTileLayer.set (chunk-ASKVX2KB.js?v=572dae80:654:14)
    at VectorTileLayer.setSource (chunk-CKUMQJDI.js?v=572dae80:653:10)
    at new Layer (chunk-CKUMQJDI.js?v=572dae80:393:10)
    at new BaseVectorLayer (chunk-FQEAHC6T.js?v=572dae80:1883:5)
    at new VectorTileLayer (chunk-FQEAHC6T.js?v=572dae80:12805:5)
    at Network.vue:193:33

请问是否是因为 SuperMap 自定义的图层源可能未完全实现 OpenLayers 的 Source 标准接口?

若不是,可能是什么原因?

1个回答

您用的原生OpenLayers加载iServer的服务?试试下面的代码:

var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.XYZ({ url: 'https://iserver.supermap.io/iserver/services/map-world/rest/maps/World/zxyTileImage.png?z={z}&x={x}&y={y}&width=256&height=256', }) }) ], view: new ol.View({ center: [0, 0], zoom: 2 }) });

1,336EXP 2025年08月04日
...