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

news2025/5/27 14:32:15

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

      • 坐标系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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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 {…

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

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

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: 给汽车“画了像”,建立了它的纵向…

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…

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

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

Docker部署Zookeeper集群

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

数据结构—(概述)

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

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

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

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

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

【数据集】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) 报文(Message)​​是系统或组件之…

【 java 基础问题 第一篇 】

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

自用git记录

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

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

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

C++ - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库)

C - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库) muduo库的基层原理核心概念总结:通俗例子:餐厅模型优势体现典型场景 muduo库中的主要类EventloopMuduo 的 EventLoop 核心解析1. 核心机制:事…

docker部署XTdrone

目录 一、前置准备 二、依赖安装 三、ros安装 四、gazebo安装 五、mavros安装 六、PX4的配置 七、Xtdrone源码下载 八、xtdrone与gazebo(实际上应该是第四步之后做这件事) 九、键盘控制 参考链接:仿真平台基础配置 语雀 一、前置准…