osgearth加载影像数据TMS、Tif、XYZ

本文详细介绍了各种地图服务的加载方法,包括TMS、TIFF、IMG、XYZ和MB格式文件的加载,并提供了ArcGIS、Google Map、高德地图、OSM、Mapbox和天地图等地图服务的URL示例。此外,还涵盖了BingMap的瓦片使用。内容深入浅出,适合地理信息系统(GIS)和地图应用开发者参考。

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

加载TMS文件

		TMSOptions imagery;
		imagery.url() = "http://readymap.org/readymap/tiles/1.0.0/22/";
		m_pMap->addLayer(new ImageLayer("ReadyMap Imagery", imagery));

加载TIF、IMG等格式文件

	         GDALOptions gdal;
			 gdal.url() = pDataSource.strFile;
			 osg::ref_ptr<ImageLayer> pImageLayer = new ImageLayer(pDataSource.strName, gdal);
			 m_pMap->addLayer(pImageLayer);

加载XYZ格式文件

	osgEarth::Drivers::XYZOptions tileOptions;
	tileOptions.url() = "http://[abc].tile.openstreetmap.org/{z}/{x}/{y}.png";
	tileOptions.profile()->namedProfile()=("spherical-mercator");
	osgEarth::ImageLayerOptions options = ImageLayerOptions("debug", tileOptions);
	osg::ref_ptr<osgEarth::ImageLayer> layer = new ImageLayer(options);
	mapNode->getMap()->addImageLayer(layer);

加载MB格式文件

	 MBTilesTileSourceOptions pMBTiles;
			 pMBTiles.filename() = pDataSource.strFile;
			 pMBTiles.format() = ".png";
			 m_pMap->addLayer(new ImageLayer(pDataSource.strName, pMBTiles));

一些数据汇总

以下url中:

Z-瓦片层级,一般支持0-18级,越大代表越清晰;

X-瓦片列号,从西向东(0->360),依次0,1,2,……;

Y-瓦片行号,从北向南(有些也可能是从南向北),依次0,1,2,……;

1、arcgis

街道图:

https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}

 

 

灰色图:

https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}

 

 

深蓝夜色:

https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}

 

 

2、googlemap

lys参数可选值包括:h(街道图)、m(街道图)、p(街道图)、r(街道图)、s(影像无注记)、y(影像含注记)、t(地形图)

街道图:

https://www.google.cn/maps/vt?lyrs=m@189&gl=cn&x={x}&y={y}&z={z}

 

 

卫星图:

https://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}(或者http://mt1.google.cn/vt/lyrs=s&x={x}&y={y}&z={z})

 

 

3、Amap(高德地图)

街道:(z>=3才有数据)

https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}

 

影像图:

https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}

 

4、OSM

街道图(国外服务器,访问较慢):

https://c.tile.openstreetmap.org/{z}/{x}/{y}.png

 

https://tile-b.openstreetmap.fr/hot/{z}/{x}/{y}.png

 

5、Mapbox

建筑图:(国内数据略陈旧)

https://b.tiles.mapbox.com/v3/osmbuildings.kbpalbpk/{z}/{x}/{y}.png

 

黑色底图:

https://a.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png

 

 

需要token

6、Mapbox

卫星图:

https://a.tiles.mapbox.com/v4/mapbox.satellite/{z}/{x}/{y}.png?access_token=

 

街道图:

https://a.tiles.mapbox.com/v4/mapbox.streets/{z}/{x}/{y}.png?access_token=

 

带区划黑底:

https://a.tiles.mapbox.com/v4/mapbox.dark/{z}/{x}/{y}.png?access_token=

 

7、天地图(http://lbs.tianditu.gov.cn/server/MapService.html)

影像图:(z>=1)

https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=

 

矢量底图:(z>=1)

https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=9a516b0f2a8179bb68f73172cff4bd22

 

注记:(z>=1)

https://t2.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&tk=

 

8、BingMap

 

 

https://ecn.t0.tiles.virtualearth.net/tiles/a1.jpeg?g=7234

https://ecn.t0.tiles.virtualearth.net/tiles/a13.jpeg?g=7234

https://ecn.t0.tiles.virtualearth.net/tiles/a130.jpeg?g=7234

从Level1开始,g=7234/100/-10……为任意正负整数

引用[1]:加载TMS文件的代码示例中,使用了TMSOptions类来设置图像的URL,并通过addLayer方法将图层添加到地图中。[1]加载TIF、IMG等格式文件的代码示例中,使用了GDALOptions类来设置图像的URL,并通过addLayer方法将图层添加到地图中。[1]加载XYZ格式文件的代码示例中,使用了XYZOptions类来设置图像的URL,并通过addImageLayer方法将图层添加到地图中。[1]加载MB格式文件的代码示例中,使用了MBTilesTileSourceOptions类来设置图像的文件名和格式,并通过addLayer方法将图层添加到地图中。[1] 引用[2]:获取图像图层的边界范围可以使用getTileSource方法获取数据范围,然后通过bounds方法获取边界范围。[2] 引用[3]:使用osgEarth的API添加图像图层可以通过GDALOptions类来设置图像的URL,并通过addImageLayer方法将图层添加到地图中。[3]在代码示例中,首先获取MapNode对象和Map对象,然后使用GDALOptions类设置图像的URL,创建ImageLayer对象,并通过addImageLayer方法将图层添加到地图中。[3] 问题: new ImageLayer是用来做什么的? 回答: new ImageLayer是用来创建一个新的图像图层对象的。通过设置不同的参数,可以加载不同格式的图像文件,并将图层添加到地图中。[1]这个对象可以用来显示地图上的图像数据,如卫星影像、地形图等。可以通过获取图像图层的边界范围来进行地图的裁剪和显示。[2]同时,也可以使用osgEarth的API来添加图像图层,通过GDALOptions类来设置图像的URL,并通过addImageLayer方法将图层添加到地图中。[3]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值