python - 获取瓦片图层点栅格中的索引
问题描述
我有一个编码为云优化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
解决方案
推荐阅读
- aws-cognito - Pivotal Cloud Foundry (PCF) 上的 AWS Cognito 替代品
- python - 导入不规则大小的文本文件
- python - 得到 IndexError 时使数组重复
- python - tensorflow gpu 安装失败
- java - 是否可以换出用于运行 Java 的 JavaExecAction Gradle?
- java - 如何调用未知类型的 lambda
- go - 为什么我可以将结构函数分配给其他结构的成员?
- node.js - node js selenium-webdriver 将页面另存为
- c# - 如何在 C# 中使用 Header Request 从另一个控制器调用一个控制器?
- drools - Drool DRL 包含