Может ли turf js обеспечить преобразование координат между географическими координатами и прикладными координатами - PullRequest
2 голосов
/ 29 апреля 2020

Мне нужно преобразование из системы координат в другую систему координат. Я думаю, что очевидным способом сделать это было бы дать два ограничивающих прямоугольника систем.

Так что, если бы у меня был геобокс, в координатах lon / lat и негеографический бокс, который соответствует к этому, но в моих собственных координатах я хотел бы xfm, который мог бы преобразовать geo-to-me и me-to-geo.

Мне это нужно для среды программирования на основе агентов, которая имеет свою собственную систему координат основанный на minX, minY, maxX, maxY, так же как Turf выражает bboxes. Это также будет работать для преобразования между географическими координатами и пикселями на холсте, например.

Я не могу найти такое преобразование координат в Turf, но я могу его пропустить, или может быть простой способ сделать это с примитивами Turf.

Есть ли способ использовать Turf для такого преобразования координат?

1 Ответ

0 голосов
/ 04 мая 2020

Я бы использовал proj4js, который обрабатывает проекционные преобразования. Ваш холст может быть представлен в Pseudo-Mercator ([x, y]), в то время как turf продолжит работать в WGS84 ([lon, lat]).

const xyCoordsToLatLong = (xy_pair) => {
    return proj4(PSEUDO_MERC_DATUM, WGS84_DATUM, xy_pair);
}

const latLongCoordsToXY = (latlong_pair) => {
    return proj4(WGS84_DATUM, PSEUDO_MERC_DATUM, latlong_pair);
}

Тогда холст bbox [0,0,500,200] будет представлен как [0, 0, 0.004491576420597608, 0.0017966305679443192].

Полная демонстрация здесь .

...