osgEarth加载SXEarth下载的mbtiles地图文件(win10)

介绍如何使用SXEarth下载mbtiles格式的地图文件,并通过osgEarth进行加载展示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用晟兴地球(SXEarth)通过互联网下载mbtiles格式的地图文件,然后使用osgEarth加载。

晟兴地球(SXEarth)下载地图文件

晟兴地球SXEarth是一款永久免费的3DGIS平台软件,由北京晟兴科技有限公司开发。

支持在线Google Earth卫星影像(无水印无偏移)下载,支持拼接为tif,支持模拟飞行,支持场景编辑。支持二三维一体化,支持影像、高程、矢量、在线地图、BIM格式ifc、倾斜摄影、在线视频、离线视频、点云、热力图、KML、三维模型、Vaps-XT仪表等多源数据导入;同时支持建筑建模、图形绘制、态势标绘、矢量编辑、地面切开、地形集成、地下集成、天气环境、动态海洋、粒子特效、模型动画、相机动画、通视分析、截面分析、图像调色、高程着色、细节纹理、地形复合材质、经纬网格、GLSL编辑、JS脚本样式、影像下载、高程下载、矢量下载、影像切片、高程切片、距离测量、角度测量、高度测量、面积测量、填挖方分析、通视分析、淹没分析、倾斜摄影压平、倾斜摄影距离高度面积测量、多点触控、模拟飞行、轨迹文件导入飞行、船体尾迹、标绘导出模型,国产Linux等。( http://www.sxsim.com/h-col-106.html )

可从官网 北京晟兴科技有限公司 官网首页 下载安装,目前版本号是4.9.0。

安装完成后,双击桌面图标“SXEarth_Pro 4.9.0”运行程序。点击“工程”-->“新建”

 

软件重新启动后,出现白色的地球

 

点击“在线地图”-->“谷歌”-->“谷歌地图”(当然可以选择其他地图,这里只是举例说明使用方法)。

 

稍等片刻,即显示如下图所示的地球

 

点击“工具”-->“下载”,在“下载配置”对话框中指定输出格式为“Mbtiles”,指定“最大层级”、“切片格式”等参数后,点击“确定”按钮,即可开始下载文件。

 

 

下载完成后,在目录“D:\SXEarth_Downloads”中得到文件如下:

 

文件名是乱码,我将其改为“google_image.db”.

使用osgEarth加载地图文件

编写earth文件,在目录“D:\SXEarth_Downloads”中创建名为“mbtiles.earth”的文件(文件名可随意),内容如下:

<map>

    <image name="google_image" driver="mbtiles">

      <url>google_image.db</url>

    </image>

</map>

在命令行进入目录“D:\SXEarth_Downloads”,输入命令

osgearth_viewer mbtiles.earth

即可显示地球,如下图所示:

osgEarth的下载和编译可参考 优快云 。

注意,osgEarth加载mbtiles文件,需要有mbtiles插件(在Windows系统中就是名为osgdb_osgearth_mbtiles.dll的库文件)。

为了生成osgdb_osgearth_mbtiles.dll文件,若没有该插件可以参考相关网页( VS2013编译32位与36位的sqlite,再CMAKE生成osgearth加载mbtiles文件需要的osgdb_osgearth_mbtiles.dll_Scarlett_OHara的博客-优快云博客 )创建sqlite3库(将头文件和libe文件分别复制到第三方库的include和lib目录)、使用CMake重新配置、生成osgEarth,在Visual Studio中重新生成项目“Plugin osgearth_mbtiles”,将生成的库文件osgdb_osgearth_mbtiles.dll复制到响应的目录中。

sqlite3相关库的创建可参考网页 今日头条 。

 

 

### 使用 osgEarth 加载和显示矢量地图文件的方法 osgEarth 是一个功能强大的地球可视化库,支持加载多种格式的地图数据,包括矢量地图文件。以下是关于如何使用 osgEarth 加载和显示矢量地图文件的详细说明: #### 1. 支持的矢量地图文件格式 osgEarth 支持加载多种矢量地图文件格式,常见的包括: - **Shapefile (.shp)**:这是最常见的矢量地图格式之一。 - **GeoJSON (.geojson)**:一种轻量级的地理空间数据交换格式。 - **KML/KMZ**:Google Earth 使用的文件格式。 - **PostGIS 数据库**:通过数据库连接加载矢量数据[^3]。 #### 2. 配置 XML 文件加载矢量地图 osgEarth 通常通过配置 XML 文件来定义地图的图层和数据源。以下是一个示例 XML 文件,展示如何加载 Shapefile 文件作为矢量图层: ```xml <map name="vector-example" srs="+proj=latlong +datum=WGS84"> <image driver="gdal" name="base"> <url>world.tif</url> </image> <vector driver="shapefile" name="countries"> <url>countries.shp</url> <style> <line> <color>0xFFFFFF</color> <width>2</width> </line> <fill> <color>0x80808080</color> </fill> </style> </vector> </map> ``` 在上述代码中: - `<vector>` 标签用于定义矢量图层,`driver="shapefile"` 指定使用 Shapefile 驱动程序。 - `<url>` 指向 Shapefile 文件路径。 - `<style>` 定义了矢量图层的样式,包括线条颜色、宽度以及填充颜色[^4]。 #### 3. 使用代码动态加载矢量地图 除了通过 XML 文件加载矢量地图外,还可以通过代码动态加载。以下是一个 C++ 示例代码,展示如何加载 GeoJSON 文件并将其添加到地图中: ```cpp #include <osgEarth/Map> #include <osgEarth/MapNode> #include <osgEarth/SpatialReference> #include <osgEarth/Registry> #include <osgEarthDrivers/vector_driver> int main() { // 创建地图对象 osgEarth::Map* map = new osgEarth::Map(); // 设置地图投影 map->setSRS(osgEarth::SpatialReference::create("wgs84")); // 添加影像图层 osgEarth::ImageLayerOptions imgOpts("base", osgEarth::GEODEGRES); imgOpts.url() = "world.tif"; map->addLayer(new osgEarth::ImageLayer(imgOpts)); // 添加矢量图层 osgEarth::VectorLayerOptions vecOpts("vector", osgEarth::GEODEGRES); vecOpts.url() = "data.geojson"; map->addLayer(new osgEarth::VectorLayer(vecOpts)); // 创建 MapNode 并显示 osgEarth::MapNode* mapNode = new osgEarth::MapNode(map); osgViewer::Viewer viewer; viewer.setSceneData(mapNode); return viewer.run(); } ``` 在上述代码中: - `VectorLayerOptions` 用于定义矢量图层的选项。 - `vecOpts.url()` 指向 GeoJSON 文件路径。 - 最后通过 `MapNode` 将地图显示出来[^5]。 #### 4. 使用命令行工具测试矢量地图 如果需要快速测试矢量地图文件是否可以正确加载,可以使用 osgEarth 提供的命令行工具 `osgearth_viewer`。例如: ```bash osgearth_viewer vector_map.earth ``` 其中 `vector_map.earth` 是包含矢量图层配置的 XML 文件[^6]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alexabc3000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值