openlayers - 01 初始化地图

1.简介

OpenLayers(openlayers.org/)是一个用来帮助开发Web地图应用的高性能的、功能丰富的JavaScript类库,可以满足几乎所有的地图开发需求。
有如下特点:

1.支持任何XYZ瓦片资源,同时也支持OGC的WMTS规范的瓦片服务以及ArcGIS规范的瓦片服务
2.支持矢量切片,包括pbf、GeoJSON、TopoJSON格式
3.支持矢量图层,能渲染GeoJSON、TopoJSON、KML、GML和其他格式的矢量数据
4.支持OGC制定的WMS、WFS等GIS网络服务规范
5.支持在移动设备上运行
6.可以通过css来为地图控件设置样式
7.面向对象开发方式,在OpenLayers中万物皆对象

本文适用于openlayers初学者,采用的vue3+vite+openlayers实现的一个简单的地图案例

2.实现

2.1通过npm安装openlayers

npm i ol

2.2创建容器

<div class="ol-map" id="map"></div>

2.3实例化

import Map from "ol/Map"; // 地图实例方法
import View from "ol/View"; // 地图视图方法
import { Tile as TileLayer, Vector as VectorLayer } from "ol/layer"; // 瓦片渲染方法
import { XYZ, OSM } from "ol/source"; // 瓦片资源
import { ScaleLine, defaults as defaultControls } from "ol/control";

// 实例化地图
  initMap() {
  // 创建地图资源图层
  let tileLayer = new TileLayer({
    // source: new OSM(), //不建议使用,实际开发中会有问题
    source: new XYZ({
      url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}", // 高德瓦片资源
    }),
  });
  
    this.map = new Map({
      layers: [tileLayer], // 图层
      view: new View({
        projection: "EPSG:4326", //坐标类型:EPSG:4326:经纬度坐标,EPSG:3857:投影坐标
        center: [104.07, 30.6], // 地图中心点经纬度
        zoom: 12, // 缩放级别
        minZoom: 0, // 最小缩放级别
        maxZoom: 18, // 最大缩放级别
        constrainResolution: true, // 因为存在非整数的缩放级别,所以设置该参数为true来让每次缩放结束后自动缩放到距离最近的一个整数级别,这个必须要设置,当缩放在非整数级别时地图会糊
      }),
      target: "map", // DOM容器

      //加载控件到地图容器中
      controls: defaultControls({
        zoom: false, // 不显示放大缩小按钮
        rotate: false, // 不显示指北针控件
        attribution: false, // 不显示右下角地图信息控件
      }).extend([
        new ScaleLine({
          //设置比例尺单位,degrees、imperial、us、nautical、metric(度量单位)
          units: "metric",
        }),
      ]),
    });
  }

onMounted(() => {
  initMap();
});

2.4名词解释

layer:图层
contorl:控件
feature:元素
interaction:交互
Vector:矢量的
Tile:瓦片
source:资源
format:转换
projection:投影

3.效果图

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大兵的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值