Comments 31
Классика жанра: задача, решаемая данным программным средством — узкоспециальная и тем, кто не связан со всем этим многообразием МСК, не нужна совершенно, но в статье, зачем-то, есть претензия на "ликбез". Как говорится, "или трусы наденьте, или крестик снимите".
Мне почему-то казалось, что на хабр идут за ответами на вопросы, за расширением кругозора, за специфической профессиональной информацией. А не за развлекательным выступлением со слоганом "спешите видеть, только сегодня, для всех и каждого"
либо берем спутниковый приемник, и просто замеряем эти известные в плоских координатах точки
у которого точность +- 10 метров…
SiRF Star IV USB GPS: www.aliexpress.com/item/32732379778.html
У меня есть оба, у каждого свои достоинства.
В сёрфе 3 есть сырые данные, но из коммерческих соображений обнулена фаза. Несколько лет назад её разлочили (сайт — кладезь информации по сёрфам, второго такого в мире нет). Главное достоинство — приёмник встраивался во многие наладонники и навигаторы, т.е. можно сделать портативное решение и даже с разъёмом для внешней антенны. Кроме того он отлично прошивается, загрузчик неубиваемый.
В четвёртом сёрфе фаза уже есть, но он вообше не прошивается. Зато есть разные плюшки типа отслеживание помех и пр.
Моя небольшая программа для сбора RINEX есть на сайте геодезистов, там же есть альтернатива от sklimkim
Вы не тестили вот эту штуку?
www.unibw.de/lrt9/lrt-9.2/forschung/ista-logger
Вот она же:
apkpure.com/ru/gnss-imu-logger/com.ista.android.apps.location.gps.gnsslogger
play.google.com/store/apps/details?id=com.ista.android.apps.location.gps.gnsslogger&hl=en
Я не верю в смартфонные антенны и, как следствие, в фазовые измерения на них, но надо понимать, что фазовые измерения это нестандартное использование GNSS, они появились как побочный результат изначальной задумки — кодовых измерений. Поэтому сырые данные, скорректированные по коду, будут вполне себе точными, думаю дециметровая точность вполне достижима. Этого недостаточно для кадастра, но вполне нормально для ГИС с постобработкой.
«плоской, метровой» системы координат
Вообще-то, это называется проекцией.
Т.е. есть система координат (WGS84, ПГС90, Пулково-1942, СК63 и еще куча всяких), есть проекции — Меркатора (в различных вариациях), Гаусса-Крюгера и т.п. Их тоже много всяких.
И задача перехода от «плоской системы координат» к WGS84 делится на две части — сначала переход от проекции к той системе координат из которой она получена, а потом уже переход из той системы координат к WGS84 (если изначальная система координат была иной).
То, чем вы занимаетесь в прямом смысле есть натягивание совы на глобус.
Есть ощущение, что точность вычислений при отображении на лефлетовской карте нивелируется точностью картографической подложки.
Притянув проекцию к СК за три точки, мы получим (почти наверняка) неплохое совпадение в этих трех точках и большие расхождения во всех остальных.
Даже в приснопамятном ОзиЭксплорере рекомендовалось привязывать карты по пяти точкам минимум (углы + центр). И указывать при этом СК и проекцию карты.
Как-то пробовал привязать старые (примерно сразу послевоенных времен) американские военные карты — пока не нашел какая там СК и проекция используется (а там было что-то очень специфическое и сейчас не используемое), то даже по многим точкам (порядка десятка) получалась ерунда. Что в Озике, что в ОкМап.
В общем, классический подход дилетанта — попытка импользовать фреймворк (в данном случае projlib), абсолютно не понимая ни предметной области, ни как все это работает. А что — там еже есть все нужные функции, просты вызовем их и получим результат…
Область совпадения не сложным путем вычисляется, в следующим релизе планируется обозначить её на карте полигоном.
Зайдите на вебформу перед тем как потридится столько написать, увидете все необходимые Вам инструменты о которых пишите.
По остальному спорить не планирую )
По поводу совпадения в трех точках:
Ну вообще, любые подобные преобразования делаются как раз, чтобы работать в пределах этих трех(пяти, десяти) точек. Даже локализация/калибровка в спец ПО на контроллерах к GPS приемникам при условии указания точных параметров перехода от СК к WGS84 и вводе координат исходных пунктов, позволяет работать внутри полигона образованного исходными пунктами и при незначительном "выходе" за его границы. Но при дельнейшем уходе от границы этого полигона будем получать нарастающие погрешности. Так что именно эта проблема надумана.
Да собственно даже при трансформации/калбировке/приведению в плоскость отсканированных планов все нормально внутри границ образованных точками трансформации, и искажения за пределами.
P.S. А в целом по теме написал ниже комментарий.
Зачем вам geophp, когда вся индустрия де-факто работает на JS (и немного Python)? Сделайте пакет на JS, и его можно будет использовать и на фронте (даже в виде плагина LeafLet), и в NodeJS, если вдруг понадобится.
А почему еще и geophp, это наверно просто от лени искать чем заменить его на js для работы с полигонами. Планируется подсветить на карте облость действия вычисленных параметров полигонами с предполагаемыми откланениями (погрешностями).
Так речь не о распространении "секретных" параметров, а о вычислении (весьма приблизительном). А отправиться в тюрьму можно и без всяких нарушений, главное — наступить кому-нибудь на хвост не очень удачно.
Формулы перехода к СК описаны в ГОСТ-е на эти самые СК. Да именно параметры некоторых СК секретны, но парадокс в том, что формулы по которым можно пересчитать - не секретны. Да и не могут быть они секретны, тут математику надо запрещать тогда.
Координаты пунктов в региональных МСК и СК42 так же выдают с пометкой ДСП.
Я топограф, хотя сейчас перешёл в it. И могу сказать что у автора есть неточности в статье.
В целом сервис может быть полезен. Редко, но такие задачи могут появляться. Хотя обычно у кого появляются такие задачи, обычно являются обладателями лицензии тех самых профессиональных софтов. Ещё одна проблема, в том что для использования необходимо провести цикл испытании, что сервис корректно делает расчеты и выдает то что ожидается.
Думаю скоро выкачу бету ГИС на параметрах полученных описанным инструментом, там и посмотрите точность.
Могу сказать, что в геоедзических работах при выносе границ, параметры показывают субдоцеметровые погрешности. При качественных исходных данных, даже сантиметровую точность.
Инструмент конечно полезный, но область применения очень узкая. Если нужна точность, то параметры как минимум региональных МСК есть в доступе, и они забиваются в Mapinfo и прочее ПО, которое позволяет работать с несколькими проекциями/СК.
Если точность не нужна, то и обойтись можно без этого инструмента.
По поводу точности координат пунктов ГГС, тут тоже тема скользкая. Как правильно было написано, создавалась она при СССР, и после этого очень мало какие пункты переопределялись. А там как минимум есть движение грунта, выдавливание пунктов вследствии промерзания и т.д. Плюс есть просто погрешности привнесенные ошибками вычислений. Есть населенные пункты, внутри которых пункты между собой имеют минимальну погрешность, а относительно пунктов в 500-1000 метрах от населенного пункта, уже имеют погрешность в несколько метров. При это пункты за пределами населенного пункта, тоже имеют небольшую погрешность взаимного местоположения.
Ну и сейчас многие профессиональные приемники имеют контроллеры на базе андроида, а соотвественно их ПО можно установить и на обычный телефон(при условии приобретения лицензии, и она не настолкьо дорагая, если все таки это необходимость). В данное ПО уже можно внести параметры МСК, импортировать свои координаты в МСК и использовать телефон/контроллер как навигатор.
Я в работе использую следующую цепочку:
1) Берем координаты в МСК(проект, выписка с координатами участка, пункты ГГС).
2) Импортируем в Mapinfo, куда уже добавлена нужная МСК.
3) Преобразуем координаты из МСК в WGS84 с помощью бесплатного расширения(правда там ограничение на количество слоев/таблиц за раз, но это не мешает).
4) Делаем экспорт из Mapinfo в kml/kmz.
Это обеспечивает предсказуемую точность. Пересчет же с помощью вычисления параметров зная координаты пунктов в двух системах должен включать в себя еще и оценку точности взаимного местоположения пунктов ГГС, чтобы исключать те, которые вносят грубую ошибку(а такие будут).
Как высчитать ключи перехода от любой системы координат к WGS с сантиметровой точностью?