作为一名giser,你必须要知道的影像下载方式(保姆级教程)

前言

如果你是一名学生,在完成作业时为了寻找一份高清影像资源时,关注了无数公众号,分享了朋友圈,点了无数次的赞,最后拿不到满意的资料而焦头烂额;如果你是一名行业从业者,更会明白,业主一般都会给你几根破木船,却想要航空母舰!!!

今天给大家介绍一款免费的、高效的、资源众多的国民软件:晟兴地球SXEarth

一、官网介绍

北京晟兴科技有限公司 官网首页 (sxsim.com)

晟兴地球SXEarth是一款永久免费的3DGIS平台软件。

功能特点:支持自定义地图图源下载,支持拼接为tif,支持模拟飞行,支持场景编辑。

适用行业:SXEarth可用于军事、交通、农业、水利、电力、建筑、规划、安防、教育等行业。

二、安装

1、打开官网,选择立即下载

2、下载完成后,安装,别安装在C盘就对了

3、默认选择,安装完成,非常简单

三、数据下载

1、选择下载数据源

左侧默认选择了arcgis影像以及基础影像

如果我们需要其它影像数据源,在顶部栏选择在线地图/添加数据,点击勾选所需数据

2、框选下载范围

在顶部选择工具、点击框选下载范围,在地图上勾画出需要下载的范围框

3、下载

点击下载按钮,会弹出下载配置项弹窗,在弹窗上设置文件下载的路径、格式

输出范围:如果你知道具体的bounds,可以修改更加精确的下载范围

输出层级:最大设置的越大,拼接完的影像越清晰,当然内存占用更大,具体的内存底部有显示;

切片格式:jpg/png  均可。

点击确定,影像开始下载以及拼接;

4、查看

打开文件夹,包含已经切好的切片XYZ文件夹,和拼接好tif影像。

四、数据应用

想了解影像如何发布成服务,如何在网页里面使用,请持续关注主页哦

如果您觉得文章对您有帮助,麻烦点个小赞哦

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用C++和GDAL库用一个面裁剪TIFF影像的示例代码: ```c++ #include <gdal_priv.h> #include <ogr_geometry.h> int main() { // 打开面文件 OGRRegisterAll(); OGRDataSource* shp_ds = OGRSFDriverRegistrar::Open("your_shapefile.shp", FALSE); // 获取面图层 OGRLayer* shp_layer = shp_ds->GetLayer(0); // 获取面几何体 OGRFeature* shp_feature = shp_layer->GetNextFeature(); OGRGeometry* shp_geometry = shp_feature->GetGeometryRef(); // 打开影像文件 GDALAllRegister(); GDALDataset* tif_ds = (GDALDataset*)GDALOpen("your_tif_file.tif", GA_ReadOnly); // 获取影像投影信息和地理变换参数 double tif_trans[6]; tif_ds->GetGeoTransform(tif_trans); const char* tif_proj = tif_ds->GetProjectionRef(); // 创建输出影像 GDALDriver* driver = GetGDALDriverManager()->GetDriverByName("GTiff"); GDALDataset* out_ds = driver->Create("your_output.tif", shp_geometry->getEnvelope()->nCols, shp_geometry->getEnvelope()->nRows, 1, GDT_Float32, NULL); // 设置输出影像的地理变换参数和投影信息 out_ds->SetGeoTransform(tif_trans); out_ds->SetProjection(tif_proj); // 读取输入影像数据 float* tif_data = new float[tif_ds->GetRasterXSize() * tif_ds->GetRasterYSize()]; tif_ds->GetRasterBand(1)->RasterIO(GF_Read, 0, 0, tif_ds->GetRasterXSize(), tif_ds->GetRasterYSize(), tif_data, tif_ds->GetRasterXSize(), tif_ds->GetRasterYSize(), GDT_Float32, 0, 0); // 创建输出影像数据 float* out_data = new float[shp_geometry->getEnvelope()->nCols * shp_geometry->getEnvelope()->nRows]; // 将输入影像数据裁剪到面范围内 for (int i = 0; i < shp_geometry->getEnvelope()->nCols; i++) { for (int j = 0; j < shp_geometry->getEnvelope()->nRows; j++) { double x = tif_trans[0] + (i + 0.5) * tif_trans[1] + (j + 0.5) * tif_trans[2]; double y = tif_trans[3] + (i + 0.5) * tif_trans[4] + (j + 0.5) * tif_trans[5]; if (shp_geometry->Contains(new OGRPoint(x, y))) { out_data[i + j * shp_geometry->getEnvelope()->nCols] = tif_data[i + j * tif_ds->GetRasterXSize()]; } } } // 写入输出影像数据 out_ds->GetRasterBand(1)->RasterIO(GF_Write, 0, 0, shp_geometry->getEnvelope()->nCols, shp_geometry->getEnvelope()->nRows, out_data, shp_geometry->getEnvelope()->nCols, shp_geometry->getEnvelope()->nRows, GDT_Float32, 0, 0); // 释放资源 delete[] tif_data; delete[] out_data; GDALClose(tif_ds); GDALClose(out_ds); OGRFeature::DestroyFeature(shp_feature); OGRDataSource::DestroyDataSource(shp_ds); return 0; } ``` 这段代码中,我们首先使用`OGRDataSource`、`OGRLayer`和`OGRFeature`类打开面文件,并获取面图层和面几何体。然后,我们使用GDAL库中的`GDALDataset`、`GDALDriver`和`GDALRasterBand`类打开TIFF文件,并获取投影信息和地理变换参数。接下来,我们创建输出影像,并设置输出影像的地理变换参数和投影信息。然后,我们使用`RasterIO()`函数读取输入影像数据,并根据面范围将输入影像数据裁剪到面内部。最后,我们使用`RasterIO()`函数将输出影像数据写入输出影像中,并使用`DestroyDataSource()`函数和`DestroyFeature()`函数释放资源。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值