首页 > 解决方案 > 获取瓦片图层点栅格中的索引

问题描述

我有一个编码为云优化geoTIFF(坐标系EPSG:4326)的大型栅格,我将其绘制在Leaflet地图上作为TileLayer(出于性能原因,我使用平铺)。瓷砖通过 Terracotta 服务器提供服务,

https://github.com/DHI-GRAS/terracotta

单击地图时,会发出包含 (lat,lon,zoom) 的单击事件。现在我的问题是,

如何确定与单击事件对应的光栅中像素的索引(i,j)?

作为第一次尝试,我找到了光栅数组中离点击事件的(纬度,经度)最近的点。但是,该指数仅在每个轴的 +/- 1 范围内正确。据我了解,差异是由于瓷砖在传单地图中以不同的坐标投影(EPSG:3857)呈现的事实。

接下来,我深入研究了 Terracotta 源代码,从中我学会了如何将 (lat,lon,zoom) 转换为图块索引 (x,y,z 其中 z 是缩放) [1]。我还找到了从光栅 [2] 读取数据的位置,但我仍然不清楚如何将完整映射到原始光栅中像素的索引。谁能引导我朝着正确的方向前进?

[1] https://github.com/mapbox/mercantile/blob/master/mercantile/init .py# L285

[2] https://github.com/DHI-GRAS/terracotta/blob/master/terracotta/drivers/raster_base.py#L451

标签: pythonleafletrastergdalgeotiff

解决方案


推荐阅读