turf.js/turf.buffer и API Карт Google

У меня есть простая карта Google. Я добавил маркер на заданной широте, долготе.

Я хочу использовать turf.js для расчета 1-километрового буфера, который затем можно отобразить в виде многоугольника Google Maps.

Путь, который возвращает turf.buffer(), представляет собой эллипс. Расстояние от маркера до границы верно по широте. Однако в продольном направлении ему не хватает 1 км. Похоже, что есть проблема с проекцией, однако и в Google Maps API, и в документах turf.js указано, что WGS84 является проекцией по умолчанию.

введите здесь описание изображения

Конечная игра использует turf.js для буферизации точек, полилиний и полигонов, поэтому, к сожалению, я не могу просто нарисовать круг Google Maps в качестве обходного пути. Я бы рассмотрел возможность перехода на Leaflet, однако мы уже вложили значительные средства в разработку для Google Maps API.

Я создал htm-файл здесь, показывающий проблему


person Paul B    schedule 03.07.2015    source источник


Ответы (1)


Я не схожу с ума. Буфер не является геодезическим, поэтому на экваторе вы получаете круглый буфер, и когда вы двигаетесь на север или юг, ваш буфер сжимается в продольном направлении к полюсам. Команда turf.js в курсе. Полную информацию см. на странице https://github.com/Turfjs/turf/issues/110. .

Вместо этого я рассматриваю использование clipper.js. Это декартова библиотека (2d), поэтому в Великобритании я могу использовать восток и север osgb. Мне также придется перевернуть на север и юг, так как клипер предполагает, что мы имеем дело со стандартной графикой, т.е. ось y перевернута, как в css, где 0,0 находится вверху слева.

Я собираюсь использовать геоинструменты для преобразования между osgb и wgs.

person Paul B    schedule 04.07.2015
comment
Теперь это исправлено, как описано в этом сообщении github.com/Turfjs/turf/pull/718< /а> - person Fausto R.; 19.05.2017