当前位置: 首页 > article >正文

前端地图数据格式标准及应用

前端地图数据格式标准及应用

      • 坐标系EPSG
      • geojson标准格式
      • 基于OGC标准的地图服务
      • shapefile文件
      • 3D模型数据
      • 常见地图框架

坐标系EPSG

EPSG(European Petroleum Survey Group)是一个国际组织,负责维护和管理地理坐标系统和投影系统的标准化编码
EPSG 用于标识不同的地理空间参考系统,包括坐标系统、地理坐标系、投影坐标系等。这些标识符可用于许多应用程序和地理信息系统软件,以确保数据在不同系统之间的正确转换和处理。现在,EPSG已被Open Geospatial Consortium(OGC)承认并管理,成为了一个全球性的标准。
EPSG负责维护全球的坐标系统,虽然EPSG不是一个强制的标准,但是因为有ERSI、Google、Microsoft和W3C等大型公司组织的使用加持,所以对于后面进入行业的GISer和开发者而言,该标准有一定的权威性和方便性。

  1. WGS84(World Geodetic System 1984):是 GPS 全球定位系统建立的坐标系统,通过GPS定位拿到的原始经纬度。EPSG代号为4326 谷歌地图
  2. GCJ-02(国家测量局02号标准):GCJ-02 是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统,是在WGS84经纬度的基础上执行加密算法而成。因为GPS得到的经纬度直接在 GCJ-02 坐标系下会定位到错误的地点,有种到了火星的感觉,因此在坊间也将 GCJ-02 戏称为火星坐标系。国内的高德腾讯地图就是用的 GCJ-02 坐标系
  3. BD-09(Baidu, BD):是百度地图使用的地理坐标系,其在GCJ-02上多增加了一次变换,用来保护用户隐私。从百度产品中得到的坐标都是BD-09坐标系。

EPSG:4326:WGS84
EPSG:3857:是Web墨卡托投影坐标系
4214:Beijing 1954地理坐标系统
4490:CGCS 2000地理坐标系统
4547:深圳

https://blog.csdn.net/josiecici/article/details/127666605
epsg查询https://epsg.io/map#srs=4326&x=109.775391&y=34.452218&z=6&layer=streets
epsg链接: link

坐标转换案例
1、amap等地图框架自带方法转换
链接: link
2、通过epsg编码互转
使用proj4JS进行坐标转换
链接: link

geojson标准格式

geojson是用json的语法表达和存储地理数据
Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection
geojson将所有的地理要素分为Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection。首先是将这些要素封装到单个的geometry里,然后作为一个个的Feature(也就是要素);要素放到一个要素集合里,从树状结构来理解FeatureCollection就是根节点,表示为:

点要素Point
点要素是最简单的,类型type对应Point,然后坐标是一个1维的数组,里面有两个元素(如果是立体的坐标就是三维x,y,z),分别为经度和纬度。properties里面可以封装各种属性,例如名称、标识颜色等等。

{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[105.380859375,31.57853542647338]}
}

多点要素MultiPoint

{"type":"Feature","properties":{},"geometry":{"type":"MultiPoint","coordinates":[[105.380859375,31.57853542647338],[105.580859375,31.52853542647338]]}
}

线要素LineString
线要素就是指线段,记录的是线的端点坐标,可视化时会按照记录顺序联结。对于曲线(如贝塞尔曲线)目前还没有很好的表达,但是在地理数据中,曲线一般会用LineString去拟合,现实地理世界中也没有标准的曲线地理要素。
线要素的坐标coordinates里的二维数组和多点要素基本一样,区别就在type上了。

{"type":"Feature","properties":{},"geometry":{"type":"LineString","coordinates":[[105.6005859375,30.65681556429287],[107.95166015624999,31.98944183792288],[109.3798828125,30.031055426540206],[107.7978515625,29.935895213372444]]}
}

MultiLineString
也是一个三维数组(和多边形一样);

{"type":"Feature","properties":{},"geometry":{"type":"MultiLineString","coordinates":[[[105.6005859375,30.65681556429287],[107.95166015624999,31.98944183792288],[109.3798828125,30.031055426540206],[107.7978515625,29.935895213372444]],[[109.3798828125,30.031055426540206],[107.1978515625,31.235895213372444]]]}
}

多边形Polygon
注:单个多边形是一个3维数组,可以包含多个二维数组,这种情况和MultiPolygon效果很像。

{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[106.10595703125,33.33970700424026],[106.32568359375,32.41706632846282],[108.03955078125,32.2313896627376],[108.25927734375,33.15594830078649],[106.10595703125,33.33970700424026]]]}}

案例:
高德加载geojson数据: link

基于OGC标准的地图服务

OGC全称是开放地理空间信息联盟,是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准定义开放服务接口等
OGC提供的标准有很多种,常用的如:WMS、WMTS、WFS、WCS
常见地图服务_WMS_WFS_WCS_ WMTS

在这里插入图片描述

在这里插入图片描述

WMS服务
Web Map Service (web地图服务,能够根据用户的请求,返回相应的地图,包括PNG、GIF、JPEG等栅格形式,或者SVG或者WEB CGM等矢量形式。
GetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述;
GetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;
GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。
参考:网络地图服务(WMS)的三大操作: link.
如amap支持

接口名称接口说明
GetCapabilities返回服务级元数据,它是对服务信息内容和要求参数的一种描述
GetMap获取地图图片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回一个地图图像,其地理空间参数和大小参数是已经明确定义的,返回的地图图像可以是GIF、JPEG、PNG或SVG格式
GetFeatureinfo返回显示在地图上的某些特殊要素的信息。该操作根据用户所请求的X、Y坐标或感兴趣的图层,返回地图上某些特殊要素的信息,信息以HTML,GML或ASCII的格式表示

WMTS服务
Web Map Tile Service(Web地图瓦片服务)wmts相比于wms,它能够提供分块地图。wmts使用瓦片矩阵集来表示 。类似一个金字塔,每一层即每一个矩阵的瓦片有不同的分辨率,每个瓦片都有唯一的编码。
WMTS 1.0.0规范支持以HTTP KVP(Key-Value Pair)方式、SOAP 方式和REST 方式发布WMTS服务。
WMTS的读取:
GetCapabilities:服务元数据
GetTile:图块资源
GetFeatureInfo:要素信息
天地图请求基于wmts服务的切片数据示例:
http://198.18.128.114:8080/geomap-api/proxy?url=http://198.18.129.17:8003/JYWL/wmts?LAYER=JYWL_JYDT&FORMAT=image/tile&TILEMATRIXSET=Matrix_JYWL_JYDT_0&VERSION=1.0.0&STYLE=JYWL_JYDT&TILEMATRIX=13&TILEROW=1320&TILECOL=6799&service=WMTS&request=GetTile
天地图请求GetCapabilities:
http://r740.youlishu.com:18081/GIS_JDSQWG/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapabilities
参考: link.
link.

接口名称接口描述
GetCapabilities获取WMTS的能力文档(即元数据文档),里面包含服务的所有信息
GetTile获取地图瓦片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回地图瓦片图像
GetFeatureInfo通过在WMTS图层上指定一定的条件,返回指定的地图瓦片内容对应的要素信息

天地图请求wmts服务的切片案例
http://198.18.128.114:8080/geomap-api/proxy?url=http://198.18.129.17:8003/JYWL/wmts?LAYER=JYWL_JYDT&FORMAT=image/tile&TILEMATRIXSET=Matrix_JYWL_JYDT_0&VERSION=1.0.0&STYLE=JYWL_JYDT&TILEMATRIX=13&TILEROW=1320&TILECOL=6796&service=WMTS&request=GetTile
请求wmts服务的切片案例

天地图请求wmts服务的切片案例-矢量瓦片,返回二进制文件
http://198.18.128.114:8080/geomap-api/proxy?url=http://58.213.148.61:8089/geostar/SLDT_DT/wmts?LAYER=SLDT_9_20&FORMAT=protobuf&TILEMATRIXSET=SLDT_9_20_Matrix_0&VERSION=1.0.0&TILEMATRIX=12&TILEROW=662&TILECOL=3401&service=WMTS&request=GetTile
在这里插入图片描述
百度地图加载wmts图层数据案例:
链接: link

WCS服务
Web Coverage Service(web地图栅格数据服务),如卫星影像。
栅格是一种基于像素的数据格式,可以有效地表示连续的曲面。栅格中的信息以网格结构存储,每个信息单元或像素具有相同的大小和形状,但值不同。数码照片,正射影像和卫星图像都以这种格式存储。
参考mapbox卫星影像介绍:
link.

接口名称接口说明
GetCapabilities返回描述服务和数据集的XML文档
DescribeCoverage在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的栅格格式返回地理位置的值或属性
GetCoverage允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述

WFS服务
Web Feature Service(web要素服务)
返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入
回结果的是XML格式的WFS服务元数据文档

接口名称接口说明
GetCapabilitiesGetCapabilities请求用于查询WFS服务的能力信息,包括支持的操作、支持的格式、空间坐标、包含的资源等。它主要的目的是使客户端在使用GetFeature请求前可以对WFS服务有一个基本的了解,从而可以设置正确的参数
DescribeFeatureType返回描述可以提供服务的任何要素结构的XML文档,即图层描述信息

shapefile文件

‌Shapefile文件格式‌是一种在地理信息系统(GIS)中广泛使用的开放标准格式,用于存储地理空间数据。它由ESRI(Environmental Systems Research Institute)开发,于1998年正式推出。Shapefile格式因其开放性、兼容性和广泛的支持,成为GIS领域最为流行的矢量数据存储格式之一‌
组成
Shapefile文件格式由以下几个核心组成部分:
‌.shp文件‌:存储几何形状信息,包括点(Points)、线(Lines)、多边形(Polygons)等‌

‌.shx文件‌:索引文件,用于快速定位几何形状‌

‌.dbf文件‌:存储与几何形状相关的属性信息‌

此外,还有可选文件,如.prj文件包含空间参考信息,而.cpg文件提供特定编码‌

应用领域
Shapefile格式广泛应用于地图制作、土地管理、环境监测、交通规划等多个领域。由于其开放性和跨平台使用的特性,Shapefile文件成为GIS数据交互的标准文件格式‌

.shp几何数据文件
.shp文件是Shapefile格式的核心部分,它存储了所有的几何信息。几何数据类型通常包括点(Points)、线(Lines)、多边形(Polygons)等。几何数据按照记录的方式存储,每条记录都对应一个具体的地理特征。每条记录的开始包含一个记录头,记录了记录的编号、内容长度和几何类型等信息。紧随其后的是实际的几何数据,这可能是坐标点序列,线段或面边界的集合。

每条几何记录通常都是以记录头开始,随后是其几何数据。在Shapefile中,点的坐标使用x和y的值表示,而线和面则需要记录一系列点的集合。例如,对于多边形来说,还可能包括其内环的信息。数据使用固定长度的记录,但在需要时会使用补丁填充来保持记录的固定长度。

.dbf属性数据文件
.dbf文件包含与.shp几何数据文件相对应的属性信息,它是一个标准的dBase格式数据库文件。每一个地理特征在.dbf文件中都有一个记录,记录的顺序与.shp文件中的几何记录顺序一一对应。.dbf文件包含了字段定义和数据记录两个部分。

字段定义部分存储了文件中每列的名称、类型和大小。常见的字段类型包括字符型(C)、数值型(N)、逻辑型(L)、日期型(D)等。数据记录部分则存储了每个地理特征的属性值,对于每一条记录,都有一个与之对应的属性数据。

.shx几何索引文件
.shx文件是索引文件,它存储了.shp文件中几何数据的索引信息,以便快速访问特定的几何记录。索引文件通过记录编号对应到.shp文件中的实际位置,这有助于提高数据检索的效率。

一个索引项是由100字节组成的结构,其中前四个字节表示偏移量,指的是.shp文件中该记录开始的位置,接下来四个字节表示记录的长度。因此,.shx文件允许程序在不知道具体数据内容的情况下,快速定位和访问.shp文件中的几何数据。

shapefile介绍:链接: link
链接: link
对shapefile文件进行转换并使用
链接: link

3D模型数据

3D模型: link

常见地图框架

amap
mapbox
cesium
openlayers
maptalks

相关文章:

前端地图数据格式标准及应用

前端地图数据格式标准及应用 坐标系EPSGgeojson标准格式基于OGC标准的地图服务shapefile文件3D模型数据常见地图框架 坐标系EPSG EPSG(European Petroleum Survey Group)是一个国际组织,负责维护和管理地理坐标系统和投影系统的标准化编码 E…...

threejs几何体BufferGeometry顶点

1. 几何体顶点位置数据和点模型 本章节主要目的是给大家讲解几何体geometry的顶点概念,相对偏底层一些,不过掌握以后,你更容易深入理解Threejs的几何体和模型对象。 缓冲类型几何体BufferGeometry threejs的长方体BoxGeometry、球体SphereGeometry等几…...

向量数据库选型实战指南:Milvus架构深度解析与技术对比

导读:随着大语言模型和AI应用的快速普及,传统数据库在处理高维向量数据时面临的性能瓶颈日益凸显。当文档经过嵌入模型处理生成768到1536维的向量后,传统B-Tree索引的检索效率会出现显著下降,而现代应用对毫秒级响应的严苛要求使得…...

java方法重写学习笔记

方法重写介绍 子类和父类有两个返回值,参数,名称都一样的方法, 子类的方法会覆盖父类的方法。 调用 public class Overide01 {public static void main(String[] args) {Dog dog new Dog();dog.cry();} }Animal类 public class Animal {…...

解决WPF短暂的白色闪烁(白色闪屏)

在 WPF 应用程序启动时出现 短暂的白色闪烁(白色闪屏),通常是由于以下原因导致的: 主要原因 WPF 默认窗口背景是白色,在加载 UI 之前会短暂显示白色背景。 解决方案 设置窗口背景为透明或黑色(推荐&…...

如何在Java中处理PDF文档(教程)

在开发文档管理系统、自动化工具或商业应用程序时,Java开发者常需处理PDF文档的编辑需求。无论是添加页面、调整内容尺寸、插入水印还是添加注释,选择一套可靠易用的Java PDF开发工具包至关重要。 JPedal(Java PDF开发工具包)的新…...

TensorBoard安装与基本操作指南(PyTorch)

文章目录 什么是TensorBoard?TensorBoardX与TensorBoard的依赖关系易混关系辨析Pytorch安装TensorBoard并验证1. TensorBoard安装和访问2. TensorBoard主要界面介绍实用技巧 什么是TensorBoard? TensorBoard是TensorFlow生态系统中的一款强大的可视化工…...

基于PyTorch的残差网络图像分类实现指南

以下是一份超过6000字的详细技术文档,介绍如何在Python环境下使用PyTorch框架实现ResNet进行图像分类任务,并部署在服务器环境运行。内容包含完整代码实现、原理分析和工程实践细节。 基于PyTorch的残差网络图像分类实现指南 目录 残差网络理论基础服务…...

2025/5/25 学习日记 linux进阶命令学习

tree:以树状结构显示目录下的文件和子目录,方便直观查看文件系统结构。 -d:仅显示目录,不显示文件。-L [层数]:限制显示的目录层级(如 -L 2 表示显示当前目录下 2 层子目录)。-h:以人类可读的格…...

【MPC控制 - 从ACC到自动驾驶】4 MPC的“实战演练”:ACC Simulink仿真与结果深度解读

【MPC控制 - 从ACC到自动驾驶】MPC的“实战演练”:ACC Simulink仿真与结果深度解读 在过去的几天里,我们一起: Day 1: 认识了ACC这位聪明的“跟车小能手”和MPC这位“深谋远虑的棋手”。Day 2: 给汽车“画了像”,建立了它的纵向…...

【时时三省】Python 语言----牛客网刷题笔记

目录 1,常用函数 1,input() 2,map() 3,split() 4,range() 5, 切片 6,列表推导式 山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,常用函数 1,input() 该函数遇到 换行停止接收,返回类型为字符串 2,map() 该函数出镜率较高,目的是将一个可迭…...

OPENEULER搭建私有云存储服务器

一、关闭防火墙和selinux 二、下载相关软件 下载nginx,mariadb、php、nextcloud 下载nextcloud: sudo wget https://download.nextcloud.com/server/releases/nextcloud-30.0.1.zip sudo unzip nextcloud-30.0.1.zip -d /var/www/html/ sudo chown -R…...

PyQt学习系列10-性能优化与调试技巧

PyQt学习系列笔记(Python Qt框架) 第十课:PyQt的性能优化与调试技巧 课程目标 掌握 PyQt应用的性能优化策略(内存管理、渲染优化、多线程)学习 调试技巧(日志输出、断点设置、性能分析工具)解…...

卷积神经网络(CNN)深度讲解

卷积神经网络(CNN) 本篇博客参考自大佬的开源书籍,帮助大家从头开始学习卷积神经网络,谢谢各位的支持了,在此期待各位能与我共同进步​ 卷积神经网络(CNN)是一种特殊的深度学习网络结构&#x…...

Docker部署Zookeeper集群

简介 ZooKeeper 是一个开源的分布式协调服务,由 Apache 软件基金会开发和维护。它主要用于管理和协调分布式系统中的多个节点,以解决分布式环境下的常见问题,如配置管理、服务发现、分布式锁等。ZooKeeper 提供了一种可靠的机制,…...

数据结构—(概述)

目录 一 数据结构,相关概念 1. 数据结构: 2. 数据(Data): 3. 数据元素(Data Element): 4. 数据项: 5. 数据对象(Data Object): 6. 容器(container): 7. 结点(Node)&#xff…...

python打卡day34

GPU训练及类的call方法 知识点回归: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作…...

华为OD机试真题—— 流水线(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...

【数据架构01】数据技术架构篇

✅ 9张高质量数据架构图:大数据平台功能架构、数据全生命周期管理图、AI技术融合架构等; 🚀无论你是数据架构师、治理专家,还是数字化转型负责人,这份资料库都能为你提供体系化参考,高效解决“架构设计难、…...

【安全攻防与漏洞​】​​HTTPS中的常见攻击与防御​​

HTTPS 中常见攻击与防御策略涵盖中间人攻击(MITM)、SSL剥离、重放攻击等,帮助构建安全的 HTTPS 通信环境: 一、中间人攻击(MITM) 攻击原理 场景:攻击者通过伪造证书或劫持网络流量&#xff0c…...

esp32cmini SK6812 2个方式

1 #include <SPI.h> // ESP32-C系列的SPI引脚 #define MOSI_PIN 7 // ESP32-C3/C6的SPI MOSI引脚 #define NUM_LEDS 30 // LED灯带实际LED数量 - 确保与实际数量匹配&#xff01; #define SPI_CLOCK 10000000 // SPI时钟频率 // 颜色结构体 st…...

【数据集】30 m地表温度LST数据集

目录 数据概述🔧研究目标与意义🧠 算法核心组成1. 地表比辐射率(LSE)估算2. 大气校正(Atmospheric Correction)LST反演流程图📊 精度验证与评估结果参考《Generating the 30-m land surface temperature product over continental China and USA from Landsat 5/7/8 …...

【CATIA的二次开发07】草图编辑器对象结构及应用

【CATIA的二次开发07】草图编辑器对象结构及应用 草图编辑器(SketchEditor)是用于创建和编辑2D草图的核心对象。其对象结构遵循CATIA的层级关系,以下是详细说明及代码示例: 一、核心对象结构图 Application │ └─ Documents│└─ Document (.CATPart)│└─ Part│└─…...

IT | 词汇科普手册Ⅱ

目录 1.报文(Message) 2.Token(令牌) Token vs. Cookie Token vs. Key "碰一碰"支付 3.NFC 4.Nginx 5.JSON 6.前置机 前置机vs.Nginx反向代理 以PDA、WMS举例前置机场景 7.RabbitMQ 核心功能 1.报文(Message) 报文&#xff08;Message&#xff09;​​是系统或组件之…...

【 java 基础问题 第一篇 】

目录 1.概念 1.1.java的特定有哪些&#xff1f; 1.2.java有哪些优势哪些劣势&#xff1f; 1.3.java为什么可以跨平台&#xff1f; 1.4JVM,JDK,JRE它们有什么区别&#xff1f; 1.5.编译型语言与解释型语言的区别&#xff1f; 2.数据类型 2.1.long与int类型可以互转吗&…...

以前端的角度理解 Kubernetes(K8s)

作为一名前端开发者&#xff0c;我们每天都在与 React、Vue、Webpack 等工具打交道&#xff0c;而 Kubernetes&#xff08;K8s&#xff09;听起来更像是后端或运维的“专属领域”。但实际上&#xff0c;K8s 的核心思想和前端开发中的某些模式高度相似。那么咱们用熟悉的类比帮助…...

自用git记录

像重复做自己在网上找的练习题&#xff0c;这种类型的git仓库管理&#xff0c;一般会用到以下命令&#xff1a; git revert a1b2c3 很复杂的git历史变成简单git历史 能用git rebase -i HEAD~5^这种命令解决&#xff0c;就最好&#xff08;IDEA还带GUI&#xff0c;很方便&…...

pyhton基础【2】基本语法

一. 注释 单行注释 以#开头&#xff0c;#右边的所有的内容当做说明&#xff0c;起辅助说明作用 # 我是一个单行注释 print(Hello) 多行注释 """ 在三引号中的注释被称之为多行注释 可以写很多行的功能说明 """ 二. 交互模式 终端输入代码…...

python数据结构-列表详解

Python中的列表(List)是一种序列类型的数据结构&#xff0c;它支持元素的动态添加和删除&#xff0c;可以容纳任意类型的数据&#xff0c;包括数字、字符串、甚至是其他列表或其他复杂数据结构。列表因其灵活性和广泛的应用场景&#xff0c;成为Python中最常用的数据结构之一。…...

本地环境下 前端突然端口占用问题 针对vscode

1.问题背景 本地运行前端代码&#xff0c;虚拟机中使用nginx反向代理。两者都使用vscode进行开发。后端使用vscode远程连接。在前端发起一次接口请求后&#xff0c;后端会产生新的监听端口&#xff0c;出现如下图的提示情况。随后前端刷新&#xff0c;甚至无法正常显示界面。 …...