//source: new OSM() source : new TileArcGISRest ( { url : 'https : //map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer' } ) , view : new View ( { center : [ 0 , 0 ] , zoom : 13 , maxZoom : 18 , minZoom : 0 , projection : "EPSG:4326" , center : [ 104.139919 , 30.674801 ] , enableRotation : false , // 配置不能旋转 } ) , } ) ;

原因分析:

最开始一直觉得是有什么地方的代码写的不符合规范,然后就从官网copy了一段下来好像还是不行,后来发现是导入的问题。

解决方案:

引入 TileLayer 时写法有问题,做了修改之后就可以正常运行了。

错误的引入: import TileLayer from 'ol/Tile';
正确的引入应该改为: import TileLayer from 'ol/layer/Tile'; ,然后再次运行代码就没问题了。
这次地图就可以正常展示了。
对于完全不熟悉的人来说真的是解决的头大,找了好久问题在哪儿QAQ。
在这里插入图片描述

var wfsVectorSource = new ol.source.Vector({ format: new ol.format.GeoJSON(), projection: 'EPSG:4326', url: f unc t... 本次使用 open layer s加载geoserver的目的是在geoserver上发布公司项目的街道背景图作为底图,配合postgis发布离线地图(自定义的地图)。 geoserver使用教程 先到官方上下载geoserver的压缩包 我使用的是–version = 2.18-SNAPSHOT 本地解压后,确认两件事 1.安装jdk环境 2.安装tomcat环境,geoserver的启动是基于tomcat服务器启动的。 比如:函数名为create_user() 属性id="create_user" 或者 属性 name="create_user"那么就会导致这样的 报错 ,只要把属性名改成其他与函数不一样的名称或者删掉就可以了 下面的代码 报错 TpyeError:data.map is not a function . let nameList = data.map(item => item.name); 原因1:data不是数组; 解决方法:将data转换成数组 let data = Array .from(data); map不能遍历HTMLCollection类型的数据,必须先将HTMLCollection转换成 array 。 接着使用for循环,发现能正常运行。 **参考博客:** 记录 React JS TypeErro 一、 Layer 介绍 Layer 是Map的核心组成部分,ol定义了四种基本的图层类型,分别是分别是Tile(瓦片)、Image(图片)、Vector(矢量)、VectorTile(矢量切片),这四种类有一个共同的基类 Layer ,它们的大多数属性和方法都继承自这个类。 其主要使用流程就是先设置相关参数创建,然后添...