Почему точки из векторных плиток с более низким уровнем масштабирования не соответствуют исходным данным? - PullRequest
0 голосов
/ 26 апреля 2020

Я запрашиваю необработанные векторные плитки с уровня масштабирования 8 из листов, созданных для масштабирования уровня 11. Затем я преобразую точечные объекты в этих плитках в гео json. Преобразованные геометрии объектов не совпадают с геометрией плиток на уровне масштабирования 11 или плитками уровня масштабирования 11, преобразованными в гео json. Я создал плитки с двумя разными программами (tegola и geo json -vt). Я конвертирую плитки с помощью vt2geo json. Я пытаюсь определить, на каком этапе процесса преобразования геометрия обрабатывается - создание плитки, преобразование плитки обратно в geo json или в mapbox gl js. Насколько я могу судить, координаты не урезаются в процессе создания или преобразования, но это не на 100% положительно. Я получаю причину упрощения линий и многоугольников при более низких уровнях масштабирования, но не вижу смысла манипулировать геометрией точек.

enter image description here.

Как видно на изображении, точки начинают расходиться после максимального уровня масштабирования исходных плиток. Один из обходных путей - просто отфильтровать векторные плитки, чтобы показать только объекты в результирующих гео json объектах, поскольку свойства все еще не повреждены, или сохранить координаты в свойствах, но это не идеально.

Нижняя строка - если я хочу просмотреть точки как можно ближе к исходным данным, какой максимальный уровень масштабирования я должен использовать (т. е. 11, 12, 13, 14) и на каком этапе манипулировать геометрией?

1 Ответ

0 голосов
/ 27 апреля 2020

Трудно сказать, каков ваш точный вопрос, но если я правильно понимаю, это по сути: «Почему я теряю пространственную точность, когда я увеличиваю свои векторные плитки», и ответ «потому что вы увеличиваете масштаб» их". Это присуще тому, как они работают.

Ваши исходные данные, вероятно, имели 10 значащих цифр точности. Каждое смещение для точки в векторном фрагменте обычно кодируется как целое число от 1 до 4096.

В основном вы можете выбрать следующие варианты:

  • повысить пространственную точность сгенерированных фрагментов (например, -d * флаг 1010 *
  • генерирует плитки с более высоким уровнем увеличения
  • , не увеличивайте их слишком сильно
...