欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

免费提供全国高清卫星图像(谷歌地球)非偏移地图(19 级)!

最编程 2024-04-02 08:33:25
...

自从Google Earth 无法访问后,作为开发者的我感同身受,非常理解那么同行们的感受。

好在我已经下载了全国的地图数据,抱着一颗数据来源于网络服务于网络的心态,我把

我手上的全国Google Earth 19级数据免费的开放给大家,旨在能尽一点绵薄之力,避免

被那些不法之徒用来获取暴利。

 

数据我已经上传到百度云盘:目前已经把全国33个省、直辖市、特别行政区数据已经完全

传到网盘,总量约10T左右。

需要的朋友,可以通过微信搜索“JingWeiKuaiTu”微信号,获取地图。

 

当然如果有朋友特别急着用,也可以通过邮寄硬盘给到我这边,我会把全国的数据一并copy到硬盘

在回寄回去。

 

关于文件格式

 

通常我们在工作中下载谷歌卫星影像数据时,轻则几百M,重则几百个G甚至上TB级。影像数据太大,是大家经常会遇到的一个问题,

尤其是向下载一个省以上数据的时候该问题尤为突出。那么该问题是否有一个比较好的解决方案呢?

以全球为例,我们以19级为例,共有2^18 * 2^17 张瓦片,如此多的瓦片会让磁盘愈来愈慢,同时也无法维护。花费时间越来越长,最后不了了之。

当影像下载范围比较大时,我们可以采用金字塔分块下载的方式进行下载,系统会自动将大范围分成若干个块,且块与块之间是可以无缝拼接的。

 

一般情况我们选择全球前10级别作为基础级别,因数据量不大(越1G)左右,后续以10级作为基础级别,

全球19级别数据被划分为 2^8 * 2^7(512 * 256)个块。每个块中包含了512 * 256 张小瓦片。

采用高效的索引方式进行存储,全球前10级别的数据存储成一个文件(.fepk),11-19级别存储为n个文件。

例如全球第10级一共有 512 * 256 张瓦片(从第0级别开始计算),那么全球11-19级别会有512 * 256 个文件(.fepk)

 

文件格式开放

作为开发者深知每一家的地图格式都不尽相同,都有自己的规则,我这里把文件的存储格式开发给大家,起到抛砖引玉的左右

期待有更好的存储格式出现,共同提升国内GIS水平。

 

1  FEPK文件格式说明

我们一般不会直接采用瓦片作为管理单元,会把一个块作为管理单元,把数据划分为索引文件与数据文件,如下所示:

数据文件:world.fepk

索引文件:world.fepk.idx

 

1.1  索引文件

 

1字段说明

文件头

字段

文件头

char    szMagic[20]

fe.tile.store.data20字节

uint    version

版本号4字节

uint    typeId

数据类型

enumPKType

{

 PK_IMAGE ,

 PK_DEM,

 PK_VEC,

PK_QXSY,

PK_USER,

};4字节

uint    wgs84

是否是wgs84经纬投影4字节

uint    flag

4字节

uint64  timestamp

时间戳8字节

real2   vStart

经纬度最小范围8*2字节

real2   vEnd

经纬度最大范围 8*2字节

LevSnaplevOff[24]

级别索引,8 * 24 字节

char    _reserve[240]

保留

级别1

int2    _start

2 * 4字节,瓦片最小行列号

int2    _end

2 * 4字节,瓦片最大行列号

uint64  _offset

8字节

uint64  _dataSize

8字节

uint    _lev

4字节

char    _reserve[216]

216字节

瓦片数据索引矩阵数据PKTLHeader

N * PKTLHeader

N = (_end.x - _start.x + 1) * (_end.y - _start.y + 1)

 

PKTLHeader

 

级别2

 

 

级别3

 

 

级别

 

 

 

PKTLHeader定义:

struct  PKTLHeader

    {

        /// 有无数据标记,即服务器上是否有该数据 0,无,1,有

        uint64  _data:2;

        /// 在本文件中是否已经存储 0,无,1,有

        uint64  _stored:2;

        /// 状态,

        uint64  _state :6;

        /// 数据地址,使用50bit最大 2^54

        /// 单个文件最大16 K T

        uint64  _offset : 54;

        /// 如果该值!= 0xFFFF,则有效,否则无效,

        /// 使用该字段的意义在于解决网络读取问题,比如在云盘上

        /// 先读取索引,如果没有数据大小,或者数据大小存储在数据文件中,则需要

        /// 再次访问数据文件,才可以得大小,增加额外的IO,同时兼顾大小,该变量最大可以存储64K

        /// 如果超过了64K,那么一样的需要访问数据文件获取大小

   ushort  _dataSize;

};

共计10自字节

LevSnap定义:

struct  LevSnap

    {

        uint64  _lev:8;

        uint64  _offset:56;

};

共计8字节

1.2  数据文件文件

文件头

字段

文件头

char    szMagic[20]

fe.tile.store.data20字节

uint    version

版本号4字节

uint    typeId

数据类型

enumPKType

{

 PK_IMAGE ,

 PK_DEM,

 PK_VEC,

PK_QXSY,

PK_USER,

};4字节

上一篇: InfoQ,谈谈百度开源高性能搜索引擎 Puck-Ben:Puck是团队长期研究和努力的成果,作为Puck的负责人,我对这个项目有着深深的热爱和执着,对我个人而言,它不仅仅是一个搜索引擎,而是代表着团队心血和智慧的结晶,它是我们对技术的追求,对创新的执着,也是我们对未来的期望和愿景,Puck的每一次升级和优化都记录着我们的成长和进步。这是我们对技术的追求,对创新的执着,也是我们对未来的期望和憧憬,帕克的每一次升级和优化都记录着我们的成长和进步。 我对帕克的未来充满期待。首先,我希望 Puck 能够在开发者社区得到广泛应用,同时得到社区的反馈,不断优化和改进。我期待看到更多的人参与到Puck的开发和使用中来,通过大家的共同努力,让Puck成为人工智能领域有影响力的工具。其次,我希望Puck能够不断创新和优化,保持技术领先地位,不仅要适应当前的技术需求,更要预测和引领未来的技术趋势。最后,我希望Puck能在更多的实际应用中实现自身价值,为人工智能在各行各业的应用提供有力支撑,推动科技发展。 访谈嘉宾简

下一篇: 10 个不可错过的外国在线历史地图集网站