geojson - 为什么较低缩放级别的矢量图块中的点与源数据不匹配?
问题描述
我正在从创建到缩放级别 11 的图块中从缩放级别 8 查询原始矢量图块。然后我将这些图块中的点特征转换为 geojson。转换后的要素几何与缩放级别 11 的切片几何不匹配,或者缩放级别 11 的切片转换为 geojson。我用两个不同的程序(tegola 和 geojson-vt)创建了瓷砖。我正在使用 vt2geojson 转换图块。我试图确定在转换过程的哪个阶段正在操纵几何图形 - 切片创建、切片转换回 geojson 或在 mapbox gl js 中。据我所知,坐标在创建或转换过程中没有被修剪,但我不是 100% 肯定的。我得到了在较低缩放级别下简化线和多边形的原因,但我看不出有任何理由来操纵点几何。
从图像中可以看出,在原始图块的最大缩放级别之后,这些点开始分开。一种解决方法是简单地过滤矢量切片以仅显示生成的 geojson 特征中的特征,因为属性仍然完好无损,或者将坐标存储在属性中,但这并不理想。
底线 - 如果我想查看尽可能接近原始数据的点,我应该使用什么最大平铺缩放级别(即 11、12、13、14),以及在什么阶段处理几何图形?
解决方案
很难说出你的确切问题是什么,但如果我理解正确,它本质上是:“为什么我在放大矢量图块时会失去空间准确性”,答案是“因为你在放大它们”。这是他们工作方式所固有的。
您的原始数据可能有 10 个有效数字精度。矢量瓦片中点的每个偏移量通常编码为 1 到 4096 之间的整数。
您的选择基本上是:
- 增加生成的图块的空间精度(例如,tippecanoe 的
-d
旗帜) - 生成更高缩放级别的图块
- 不要过度放大它们
推荐阅读
- sql - SQL Server - GROUP BY 超过 1000 万行达到性能
- swift - 如何获取正在运行的进程的完整列表
- java - 无法在谷歌地图中绘制路线
- javascript - 来自服务器的哪个响应是需要具有安全标头的响应
- node.js - Webhook 调用失败。错误:500 内部服务器错误 | 对话流 | 火力基地
- scala - 无法让 pureconfig 反序列化嵌套案例类
- jquery - 在选择另一个 select2 下拉列表时重置一个 select2 下拉列表的元素
- python - Python unicode 索引显示不同的字符
- node.js - 如何在 MongoDB 中查找文档而不是通过它的 _id 和我们自己的索引?
- forms - 表格中的组合框下拉列表