首页 > 其他分享 >OpenLayers基础知识回顾(一)

OpenLayers基础知识回顾(一)

时间:2024-10-12 11:49:20浏览次数:10  
标签:要素 回顾 EPSG 地图 基础知识 3857 OpenLayers 图层 4326

一、一张地图的构成

  • 从数据表现在页面来说
    点 、线、 面

  • 从数据类型来说
    矢量数据:放大后不会失真
    栅格数据:放大后会失真,这种数据是由一个个的像素点组成的

  • 从图层来说
    一张地图由很多图层组成,图层有zIndex参数,可以用于设置图层堆叠顺序
    图层:将同一类型的要素,放在一个图层上(相同要素的集合)
    Map–Layer

  • 点图层

  • 线图层

  • 面图层

  • 单独标记图层
    在这里插入图片描述

二、GIS概念

1.整体框架

1、地图的组成

在这里插入图片描述

  1. 底图(Map):所有信息的载体
  2. 图层(Layer):相同类型要素形成的集合
  3. 要素(Feature):表示不同的地物
  4. 几何信息(Geometry):信息的数据模型和抽象
2、地图容器

准备阶段创建的指定id的div对象,这个div将作为承载所有图层、点标记、矢量图形、控件的容器

3、图层(Layer)

图层是指能够在视觉上覆盖一定的地图范围,用来描述全部或者部分现实世界区域内的地图要素的抽象概念,一幅地图通常由一个或者多个图层组成

4、矢量图形

矢量图形,一般覆盖于底图图层之上,通过矢量的方式(路径或者实际大小)来描述其形状,用几何的方式来展示真实的地图要素,会随着地图缩放而发生视觉大小的变化,但是其代表的实际路径或范围不变,除了折线、圆、多边形之外,JS API还提供了矩形、椭圆等常用的矢量图形

5、点标记

点标记是用来标示某个位置点信息的一种地图要素,覆盖于图层之上,通常就是一个点要素。

6、地图控件(Map Controls)

控件浮在所有的图层和地图要素之上,用于满足一定的交互和提示功能

2.名词

1、地图级别 ZoomLevel

Web地图最小级别通常为3级

2、经纬度 LngLat
3、底图 BaseLayer
4、底图要素 Map Features
5、标注 Labels
6、地图平面像素坐标 Plane Coordinates
7、投影 Projection

三、webgis开发流程

在这里插入图片描述
webgis开发 = 地图框架 + 【GIS平台】二次开发接口
(如何使用地图框架,展示地图数据)

1、数据处理

在MapGIS客户端进行数据处理
5. 创建要素类
6. 添加各种要素,编辑要素的属性
7. 生成地图文档

2、数据发布

通过server manager将数据上传到IG Server(localhost:9999就是IG Server的可视化操作界面)

  1. 发布地图文档
3、数据显示

在web端地图框架上,通过JavaScript SDK 调用接口对接IG Server,进行地图和数据的可视化操作。

四、地图显示

要在页面上显示地图仅仅需要一个html页面,分成以下几个步骤

  1. 导入openlayers依赖
  2. 设置地图容器挂载点
  3. 初始化地图,并将地图设置到地图容器
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      http-equiv="X-UA-Compatible"
      content="IE=edge"
    />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0"
    />
    <title>Document</title>
    <!-- 1.引入第三方库 -->
    <link
      rel="stylesheet"
      href="https://lib.baomitu.com/ol3/4.6.5/ol.css"
    />
    <script src="https://lib.baomitu.com/ol3/4.6.5/ol.js"></script>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      #map {
        width: 100vw;
        height: 100vh;
      }
    </style>
  </head>

  <body>
    <!-- 2、设置地图的挂载点 -->
    <div id="map"></div>
    <script>
      // 3.初始化一个高德地图层
      const gaode = new ol.layer.Tile({
        title: '高德地图',
        source: new ol.source.XYZ({
          url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}',
          wrapX: false
        })
      })
      //4.初始化openlayer地图
      const map = new ol.Map({
        // 将初始化的地图设置到id为map的DOM元素上
        target: 'map',
        //设置图层
        layers: [gaode],
        view: new ol.View({
          center: [114.3, 30.5],
          //设置地图放大级别
          zoom: 12,
          projection: 'EPSG:4326'
        })
      })
      console.log(map)
    </script>
  </body>
</html>

五、坐标

EPSG:4326 和 EPSG:3857 是两个常用的坐标参考系代码,用于在 GIS 中表示地理位置。它们的主要区别如下:
● EPSG:4326 表示一个地理坐标系,使用经纬度来表示地理位置,通常用于地理位置的显示和制图。
● EPSG:3857 表示一个 Web 墨卡托坐标系,使用平面墨卡托投影来表示地理位置。
因此,两个坐标系的主要区别在于它们使用的坐标系统不同:EPSG:4326 使用的是经纬度,而 EPSG:3857 使用的是平面墨卡托投影。
EPSG:3857 在在线地图中被广泛使用,因为它能够在 Web 地图上提供更高的精度和更好的分辨率。然而,EPSG:4326 在网络上传输地理位置信息时被更多地使用,因为它使用的是标准的地理坐标系。
总的来说,选择使用哪个坐标系取决于你的应用需求:如果需要高精度和分辨率,选择 EPSG:3857;如果需要标准的地理坐标系,选择 EPSG:4326
Openlayer默认使用EPSG:3857;
ol.proj.transform([114,30],‘EPSG:4326’,‘EPSG:3857’)可以将经纬度,转化为墨卡托。

六、openlayers的重要概念

在这里插入图片描述

  1. 一张地图有很多图层组成
  2. 一个图层对应一个数据源(layer-source)
  3. 数据源中放置了很多的要素(Feature)
  4. 要素由几何信息和样式信息构成
    Map Layers Source Feature

七、OpenLayers架构

在这里插入图片描述

标签:要素,回顾,EPSG,地图,基础知识,3857,OpenLayers,图层,4326
From: https://blog.csdn.net/qq_45751819/article/details/142871369

相关文章

  • 立创eda 入门 基础知识和数据手册阅读
    引入知识PCB印刷电路版 连接链接元件电阻元件 色环电阻4(黄)7(紫)0(黑)*0.1(金)=47欧姆误差1%(棕) 根据颜色三位或四位(前几位是欧姆数10的n次方n为最后一位)贴片电阻如普中单片机为102转化为10*10*10=1000蓝桥杯单片机为1002转化为100*10*10=10000......
  • 云音乐贵州机房迁移总体方案回顾
    2024年网易云音乐宕机几个小时 一、背景2023年确定要将云音乐整体服务搬迁至贵州机房,项目需要在各种限制条件下,保障2000+应用、100w+QPS的服务稳定迁移,是云音乐历史上规模最大、人员最多、难度最高的技术项目。在此过程中,解决了大量历史技术债务,同时化解了大量新增系统性风险......
  • MySQL基础知识
    基础篇通用语法及分类DDL:数据定义语言,用来定义数据库对象(数据库、表、字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语言,用来创建数据库用户、控制数据库的控制权限DDL(数据定义语言)数据定义语言数据......
  • 鸿蒙初学002-应用程序包基础知识
    应用与应用程序包用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。一个应用所对应的软件包文件,称为“应用程序包”。当前系统提供了应用程序包开发、安装、查询、更新、卸载的管理机制,便于开发者开发和管理应用。同时,系统还屏蔽了不同的芯片平......
  • 高数基础知识1
    函数与极限函数1.定义:函数f是从一个集合D(称为定义域,D包含于实数集R)到另一个集合Y(称为值域)的映射。对于定义域中的每一个元素x,函数f都指定了一个唯一的元素y在值域中,记作其中x叫做自变量,y叫做因变量,f叫做映射规则,f(x)表示一个函数值。函数的两要素1.定义域:函数中所......
  • 要想成为黑客,离不开这十大基础知识,这一篇保证你学得明明白白
    黑客就像计算机幽灵一样,来无影去无踪。很多朋友对他们的高超技术羡慕不已,都想知道成为一名黑客,都需要掌握哪些基本技能。其实,总结起来也就以下十项基础技能。1、专业英语计算机最早诞生于美国,天生自带“英文”属性。虽然我们普通人可以使用简体中文,但人和计算机的交互命令......
  • openlayers处理大量Overlay渲染问题
    问题背景研发需求是提供离线地图,加载本地文件作为地图底图。后端提供了.shp、.dbf和.prj文件。由于Openlayers无法直接渲染shp数据,需要将shp数据格式转化为geojson格式,这可以在在线网站https://mapshaper.org/上实现,而.shp文件中提供了经纬和某些文字,文字注解在.dbf文件......
  • Java基础知识——String篇
    一、String1、是什么String是Java中用于表示字符串的类。Java中的字符串是不可变的,也就是说一旦创建,字符串的内容无法更改。2、如何构造(1)无参数构造方法:Stringstr=newString();//创建一个空字符串。(2)从字符数组创建:char[]charArray={'H','e','l','l',......
  • 十二、pytorch的基础知识
    1、快捷命令  2、Tensor  Tensor是PyTorch中重要的数据结构,可认为是一个高维数组。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)以及更高维的数组。Tensor和Numpy的ndarrays类似,但Tensor可以使用GPU进行加速。  Tensor的基本使用:from__future__importprint_func......
  • Python基础知识7
    Python字典(dict)1.字典是一种可变容器模型,且可存储任意类型对象。2.字典的每个键值对(key:value)用冒号分割,每个对之间用逗号分割,整个字典包括在花括号{}中d={key1:value1,key2:value2,key3:value3}创建字典1.dict作为Python的关键字和内置函数,变量......