【openlayers】地图【二】

学习不用慌,我们可以看到官网这个界面我们只需要掌握下面几大项就可以操练起来了。
当然在学习中要经常查官方文档自然慢慢就会了。

在这里插入图片描述

Layer图层

瓦片地图原理

  • OpenLayers的地图数据通过图层(Layer)进行组织渲染,然后通过数据源(Source)设置具体的地图数据来源。Layer可看作渲染地图的层容器,具体的数据需要通过Source设置。

  • 地图数据根据数据源(Source)可分为Image、Tile、Vector三大类型的数据源类,对应设置到地图图层(Layer)的Image、Tile、Vector三大类的图层中。

  • Source和Layer是一对一的关系,有一个Source,必然需要一个Layer,然后把Layer添加到Map上,就可以显示出来了。

Image为图片数据源,Tile为瓦片数据源(之前文章有如何下载瓦片),两者本质基本相同,均为图片或图片集。

初始化一个切片图层

 // 使用 高德 的瓦片数据
        const tileLayer = new TileLayer({
   
            source: new XYZ({
   
                url: "https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
            }),
        });

例中的 source url 设置了数据的来源。

矢量图层Vector Layer

矢量地图

Vector Layer的特点
在栅格图片里,你所能看到就是你所能得到的信息,在你的地图上添加卫星图片能够看到很多的建筑物,但是建筑物的很多属性信息你是看不到的,如楼层结构、年代、使用年限等,但是矢量图层能够提供更多的信息。
在矢量图层中,能够显示建筑物的几何形状和附加信息,如房主、面积、方位等等。在栅格图层上添加矢量图层很简单,还可以在指定位置创建要素。我们可以通过鼠标的点击、停旋在要素上查看要素的属性信息,空间信息等。

我们根据坐标值或者通过绘制生成的几何体,都是使用VectorLayer来添加的

// 创建矢量数据源
    const source = new VectorSource({
   
      features,
    });
    // 创建样式
    const style = new Style({
   
      stroke: new Stroke({
   
        color: "#ff0000",
        width: 3,
        lineDash: [5],
      }),
      fill: new Fill({
   
        color: "rgba(255,255,255,0.9)",
      }),
    });
    // 创建矢量图层
    const areaLayer = new VectorLayer({
   
      source,
      style,
      zIndex: 100,
    });

    const map = new Map({
   
      view: new View({
   
        center: fromLonLat([120.771441, 30.756433]),
        zoom: 3,
        minZoom: 0,
        maxZoom: 18,
        constrainRotation: true,
      }),
      target: this.$refs.mapCon,
      layers: [
        new TileLayer({
   
          source: new OSM(),
        }),
      ],
    });

    map.addLayer(areaLayer);

View

表示地图的简单 2D 视图。简单理解就是用来控制地图在容器中移动,方法的。
主要用于更改地图的中心、分辨率和旋转的对象。我们使用它来操作地图。

常用参数

  • center 视图的初始中心。
  • constrainRotation 旋转约束。 false意味着没有约束。true意味着没有约束
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenLayers地图无法加载时,可能有以下几个原因: 1. 网络连接问题:请检查您的网络连接,确保能够正常访问地图服务器。如果您的网络连接存在问题,地图文件可能无法下载并加载。 2. 地图服务配置错误:请确保您正确配置了地图服务的URL和相关参数。您需要提供正确的地图服务地址,并在代码中设置正确的图层、投影和地图范围参数。 3. 坐标系不匹配:如果您的地图数据使用了与OpenLayers默认坐标系不匹配的坐标系,您需要在代码中进行相应配置或转换。确保地图数据的投影与OpenLayers一致,以便正确显示地图。 4. 地图数据文件损坏:请检查您的地图数据文件是否完整且没有损坏。如果地图数据文件损坏,OpenLayers可能无法正确解析和加载地图。 5. 代码错误:请仔细检查您的代码是否存在语法错误或逻辑错误。确保您正确引入了OpenLayers库文件,并正确配置和初始化地图对象。 在解决问题时,您可以尝试以下步骤: 1. 检查网络连接,确保您能够正常访问地图服务。 2. 检查地图服务配置,确保您正确配置了地图服务的URL和相关参数。 3. 检查坐标系设置,确保地图数据的投影与OpenLayers一致。 4. 检查地图数据文件,确保地图数据文件完整且没有损坏。 5. 仔细检查您的代码,确保代码没有语法错误或逻辑错误,并正确引入和初始化OpenLayers库。 如果以上解决方法仍然无效,您可以查阅OpenLayers的官方文档、公开社区和相关教程,寻求更详细的帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值