javascript-WMTS和WMTSTileGrid导致“无法读取未定义的属性””
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-WMTS和WMTSTileGrid导致“无法读取未定义的属性””,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2523字,纯文字阅读大概需要4分钟。
内容图文
![javascript-WMTS和WMTSTileGrid导致“无法读取未定义的属性””](/upload/InfoBanner/zyjiaocheng/651/f20e455412ca437b9cef19110f69430f.jpg)
我基本上是在尝试在开放图层中获取地图,该图层的视图仅限于丹麦.我想使用EPSG:25832来完成此操作,因为我需要使用此投影的特定服务的一些叠加层.
我正在尝试创建WMTSTileGrid,并通过WMTS将其解析为TileLayer,在其中调用服务以获取图层.我正在使用ol@5.3.2.
我收到以下错误,并且我需要帮助弄清楚是什么原因引起的:
Uncaught TypeError: Cannot read property 'every' of undefined
at isSorted (array.js:242)
at WMTSTileGrid.TileGrid (TileGrid.js:70)
at new WMTSTileGrid (WMTS.js:58)
at Object.parcelRequire.index.js.ol/ol.css (index.js:83)
at newRequire (mao.e31bb0bc.js:47)
at mao.e31bb0bc.js:81
at mao.e31bb0bc.js:120
这是代码,我已经尝试过发布尽可能少的数量,以便于阅读,如果您认为缺少了一些东西,请告诉我:
import { Map, View } from 'ol';
import TileLayer from 'ol/layer/Tile';
import WMTS from 'ol/tilegrid/WMTS';
import WMTSTileGrid from 'ol/tilegrid/WMTS';
import Group from 'ol/layer/Group.js';
import TileWMS from 'ol/source/TileWMS';
import proj4 from 'proj4/dist/proj4';
import { get as getProjection } from 'ol/proj';
import Projection from 'ol/proj/Projection.js';
import { getTopLeft } from 'ol/extent.js';
import { register } from 'ol/proj/proj4.js'; // ADDED THIS
var myServiceToken = '12345678';
// defining custom projection, because i want to use EPSG:25832 due to the service i'm calling
var projCode = 'EPSG:25832';
proj4.defs(projCode, "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs");
register(proj4); // ADDED THIS
var myProjection = new Projection({
code: 'EPSG:25832',
units: 'm',
extent: [120000, 5661139.2, 1378291.2, 6500000]
});
var projection = getProjection(myProjection);
var projectionExtent = projection.getExtent();
var myTileGrid = new WMTSTileGrid({
origin: getTopLeft(projectionExtent),
extent: [120000, 5661139.2, 1378291.2, 6500000],
resolutions: [1638.4, 819.2, 409.6, 204.8, 102.4, 51.2, 25.6, 12.8, 6.4, 3.2, 1.6, 0.8, 0.4, 0.2],
matrixIds: ['L00', 'L01', 'L02', 'L03', 'L04', 'L05', 'L06', 'L07', 'L08', 'L09', 'L10', 'L11', 'L12', 'L13'],
});
const map = new Map({
target: 'map',
layers: [
new Group({
'title': 'Base maps',
layers: [
new TileLayer({
opacity: 1.0,
title: 'Base',
type: 'base',
visible: true, // by default this layer is visible
source: new WMTS({
url: "https://services.someService.com/some_map?token=" + myServiceToken,
layer: "some_map",
matrixSet: "View1",
format: "image/jpeg",
projection: getProjection('EPSG:25832'), // ADDED THIS
tileGrid: myTileGrid,
style: 'default',
size: [256, 256]
})
})
]
})
],
view: view
});```
解决方法:
您在导入中犯了一个错误:
import WMTS from 'ol/tilegrid/WMTS';
应该:
import WMTS from 'ol/source/WMTS';
内容总结
以上是互联网集市为您收集整理的javascript-WMTS和WMTSTileGrid导致“无法读取未定义的属性””全部内容,希望文章能够帮你解决javascript-WMTS和WMTSTileGrid导致“无法读取未定义的属性””所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。