Упрощение GeoJSON

Упростите плотные линии и полигоны GeoJSON алгоритмом Дугласа–Пекера с допуском в метрах — часто на 80–95% меньше без заметных изменений.

Упрощение GeoJSON работает полностью в вашем браузере. Ваши геоданные обрабатываются на вашем устройстве и никогда не загружаются.

Создаёт и поддерживает Udit Agarwal

Открыть просмотрщик GeoJSON

Об инструменте Упрощение GeoJSON

Упрощение GeoJSON применяет алгоритм Рамера–Дугласа–Пекера к каждой LineString, MultiLineString, Polygon и MultiPolygon в ваших данных. Алгоритм сохраняет вершину только в том случае, если её удаление сместило бы форму больше, чем заданный допуск — здесь он задаётся в метрах, а долгота корректно масштабируется по широте, поэтому один и тот же допуск означает одно и то же и в Осло, и в Сингапуре. GPS-треки, записываемые каждую секунду, и границы, оцифрованные с точностью геодезической съёмки, обычно уменьшаются на 80–95% без заметных изменений в масштабе карты. Структура остаётся неповреждённой: кольца остаются замкнутыми, полигоны сохраняют минимум четыре точки, точки и свойства проходят без изменений, а исходный объект никогда не изменяется.

Возможности

  • Алгоритм Дугласа–Пекера с ползунком допуска в метрах
  • Масштабирование по широте: метры остаются метрами везде
  • Поддержка LineString, Polygon и их вариантов Multi*
  • Рекурсивный обход FeatureCollection и GeometryCollection
  • Кольца остаются замкнутыми и никогда не опускаются ниже допустимого полигона
  • Отображение числа точек, процента сокращения и размера в байтах

Как использовать Упрощение GeoJSON

  1. Вставьте GeoJSON или загрузите пример
  2. Задайте допуск: 5–20 м для уровня улиц, 100 м и более для стран
  3. Проверьте статистику сокращения
  4. Скопируйте упрощённый GeoJSON

Пример

Ввод

GPS running track, 4,812 points, 512 KB

Результат

10 m tolerance → 214 points, 24 KB — 95.6% fewer points

Неотличимо на карте; загружается в двадцать раз быстрее.

Частые ошибки и устранение неполадок

  • Упрощённая форма заметно срезает углы. — Допуск слишком велик для вашего масштаба. Уменьшайте его вдвое, пока артефакты не исчезнут — оптимальная точка — это наибольший допуск, при котором результат всё ещё выглядит идентичным.
  • Не удалено ни одной точки. — Данные, возможно, уже достаточно грубые относительно заданного допуска. Увеличьте допуск и учтите, что Point никогда не затрагиваются — только у линий и колец есть вершины, которые можно сэкономить.
  • Два соседних полигона больше не совпадают точно по границе. — Каждое кольцо упрощается независимо, поэтому общие границы могут немного разойтись. Для строгой топологии используйте топологически осведомлённый конвейер обработки; для слоёв отображения такие зазоры составляют доли пикселя.

Часто задаваемые вопросы

Как алгоритм Дугласа–Пекера решает, какие точки сохранить?
Он проводит хорду между концами отрезка, находит вершину, наиболее удалённую от неё, и сохраняет её только в том случае, если расстояние превышает допуск — затем рекурсивно повторяет это для обеих половин. Оставшиеся вершины — это именно те, что формируют линию в вашем масштабе.
Какой допуск использовать для GPS-треков?
Потребительский GPS и без того «блуждает» на 3–10 м, поэтому допуск в 10 м в основном убирает шум, а не полезный сигнал. Отображение уровня улицы выдерживает допуск примерно до 20 м; региональные обзоры терпят 100 м и более.
Не сломает ли упрощение мои полигоны?
Встроенные защиты предотвращают типичные сбои: замыкающая точка сохраняется, а кольца, которые опустились бы ниже четырёх точек, остаются без изменений. Самопересечение при агрессивном допуске на сильно извилистых формах всё же остаётся возможным — проверяйте визуально результаты сильного сокращения.
Почему упрощать в метрах, а не в градусах?
Градус долготы сокращается с ростом широты — 111 км на экваторе, 55 км на 60°с.ш. Допуск в градусах упрощал бы скандинавские данные вдвое сильнее; масштабирование по cos(широта) сохраняет физический смысл допуска.

Связанные инструменты

  • GeoJSON Viewer — Проверяйте GeoJSON, смотрите его на карте и читайте сводку по объектам.
  • Рамка GeoJSON — bbox, центр, площадь и длина любого GeoJSON в обоих порядках.
  • Конвертер GPX в GeoJSON — Конвертируйте GPS-треки, маршруты и путевые точки между GPX и GeoJSON в обе стороны, локально в браузере.
  • Конвертер GeoJSON в CSV — Конвертируйте GeoJSON в CSV и обратно: координаты становятся столбцами широты и долготы, локально в браузере.
  • Кодировщик polyline — Кодируйте координаты в Google polyline или декодируйте в lat/lng и GeoJSON.
  • Конвертер KML в GeoJSON — Конвертируйте KML из Google Earth в GeoJSON и обратно, локально в вашем браузере.

Другие инструменты: Гео / Карты

Все инструменты: Гео / Карты (23) · Все инструменты