переход плоск-сферич Формула 25 действующего ГОСТа

Не знаете, где задать вопрос? Задавайте здесь.
ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 11:29

trir писал(а):
06 мар 2019, 11:26
неизвестная СК - это СК параметры которой не известны...
СК DST UTM(или ЛЮБАЯ ПРЯМОУГОЛЬНАЯ СК БЛИЗКАЯ К НИЖЕГОРОДСКОЙ ОБЛ)
СК SRC МЕЖДУНАРОДНАЯ СК с GPS координатами(что б эти координаты в яндекс подставить и он точку отобразил)

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 11:34

Можно чётко написать, какие конкретно параметры нужно передать?

//МЕЖДУНАРОДНАЯ СК с GPS координатами(что б эти координаты в яндекс подставить и он точку отобразил)
CoordinateReferenceSystem src = new CoordinateReferenceSystem(
"что это за строка",
"что это за массив строк",
Datum.WGS84,
что за Projection);

//UTM(или ЛЮБАЯ ПРЯМОУГОЛЬНАЯ СК БЛИЗКАЯ К НИЖЕГОРОДСКОЙ ОБЛ)
CoordinateReferenceSystem dst = new CoordinateReferenceSystem(
"что это за строка",
"что это за массив строк",
Datum.WGS84,
что за Projection);
CoordinateTransform ct = new CoordinateTransformFactory().createTransform(src,dst);

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение freeExec » 06 мар 2019, 11:34

ivkomn писал(а):
06 мар 2019, 10:31
На пальцах можно как-то объяснить:
1. выбираешь в своей системе координат нулевую точку и получаешь её GPS координаты в градусах
2. берешь класс такой-то библиотеки https://github.com/locationtech/proj4j
2. вставляешь в него GPS координаты в градусах(из п1), с такими-то параметрами
3. получаешь координаты в МЕЖДУНАРОДНОЙ прямоугольной системе координат
4. высчитываешь разницу по Х и У между своей СК и международной
5. добавляешь эту разницу ко всем своим координатам
6. переводишь свои координаты в GPS в градусы
Вы собрались условно "к милям прибавить километры" и радоваться получившемуся числу.

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 11:40

CoordinateReferenceSystem dst = new CoordinateReferenceSystem("не важно", неизвестно, неизвестно, Projection.tmerc);
CoordinateReferenceSystem src = new CoordinateReferenceSystem("EPSG:4326", null, Datum.WGS84, Projection.longlat);

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 11:45

trir писал(а):
06 мар 2019, 11:40
Projection.tmerc
trir писал(а):
06 мар 2019, 11:40
Projection.longlat
что это такое? Как получить эти объекты?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 12:13


ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 13:13

Так?

Код: Выделить всё

	Projection tmerc = new TransverseMercatorProjection();
        Projection longlat = new LongLatProjection();
        longlat.setEllipsoid(Ellipsoid.KRASSOVSKY);
        longlat.setLonCDegrees(54);
        longlat.setProjectionLatitude(43);        
        CoordinateReferenceSystem src = new CoordinateReferenceSystem(
                "EPSG:4326",
                null,
                Datum.WGS84,
                longlat);
        CoordinateReferenceSystem dst = new CoordinateReferenceSystem(
                "UTM",
                null,
                Datum,
                tmerc);
        CoordinateTransform ct = new CoordinateTransformFactory().createTransform(src,dst);
Если хочу получить два числа double, отражающие плоские координаты в ск UTM, мне нужно что-то подставить в Datum и правильно инициализировать tmerc ? С какими параметрами?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 13:18

facepalm

Код: Выделить всё

        longlat.setEllipsoid(Ellipsoid.KRASSOVSKY);
        longlat.setLonCDegrees(54);
        longlat.setProjectionLatitude(43); 
зачем?
в UTM - Datum.WGS84

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 13:42

Код: Выделить всё

        Projection tmerc = new TransverseMercatorProjection();
        Projection longlat = new LongLatProjection();
        CoordinateReferenceSystem src = new CoordinateReferenceSystem(
                "EPSG:4326",
                null,
                Datum.WGS84,
                longlat);
        CoordinateReferenceSystem dst = new CoordinateReferenceSystem(
                "UTM",
                null,
                Datum.WGS84,
                tmerc);
        CoordinateTransform ct = new CoordinateTransformFactory().createTransform(src,dst);
??
Но когда же указывать gps координаты?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 14:17

метод transform

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 14:30

Код: Выделить всё

Projection tmerc = new TransverseMercatorProjection();
        Projection longlat = new LongLatProjection();
        CoordinateReferenceSystem src = new CoordinateReferenceSystem(
                "EPSG:4326",
                null,
                Datum.WGS84,
                longlat);
        CoordinateReferenceSystem dst = new CoordinateReferenceSystem(
                "UTM",
                null,
                Datum.WGS84,
                tmerc);
        CoordinateTransform ct = new CoordinateTransformFactory().createTransform(src,dst);
        ProjCoordinate wgs84Coord = new ProjCoordinate(54,43);
        ProjCoordinate utcCoord = new ProjCoordinate(0,0);
        ct.transform(wgs84Coord,utcCoord);
        System.out.println("X->"+utcCoord.x+":Y->"+utcCoord.y);
почему тогда:
X->NaN:Y->NaN

?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 14:46

попробуй сделать:
dst.setUTMZone(38);

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 14:52

Код: Выделить всё

TransverseMercatorProjection tmerc = new TransverseMercatorProjection();
        tmerc.setUTMZone(5);
        LongLatProjection longlat = new LongLatProjection();
        CoordinateReferenceSystem src = new CoordinateReferenceSystem(
                "EPSG:4326",
                null,
                Datum.WGS84,
                longlat);
        CoordinateReferenceSystem dst = new CoordinateReferenceSystem(
                "UTM",
                null,
                Datum.WGS84,
                tmerc);

        CoordinateTransform ct = new CoordinateTransformFactory().createTransform(src,dst);
        ProjCoordinate wgs84Coord = new ProjCoordinate(54,43);
        ProjCoordinate utcCoord = new ProjCoordinate(0,0);

        utcCoord = ct.transform(wgs84Coord,utcCoord);
        System.out.println("X->"+utcCoord.x+":Y->"+utcCoord.y);
тот же результат

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение trir » 06 мар 2019, 14:59

38

ivkomn
Интересующийся
Сообщения: 36
Зарегистрирован: 04 мар 2019, 14:08
Репутация: 0
Откуда: Саров

Re: переход плоск-сферич Формула 25 действующего ГОСТа

Сообщение ivkomn » 06 мар 2019, 15:11

Код: Выделить всё

CRSFactory factory = new CRSFactory();

        CoordinateReferenceSystem srcCrs = factory.createFromName("EPSG:4326");
        CoordinateReferenceSystem dstCrs = factory.createFromName("EPSG:32638");

        ProjCoordinate srcCoord = new ProjCoordinate(54.9850521593413, 43.2725334459904);
        ProjCoordinate dstCoord = new ProjCoordinate();

        CoordinateTransform ct_my = new CoordinateTransformFactory().createTransform(srcCrs,dstCrs);
        ct_my.transform(srcCoord,dstCoord);

        System.out.println("X:"+dstCoord.x+":Y:"+dstCoord.y);
не мытьём, так катаньем ))
Получил результат

Код: Выделить всё

X:1310495.622518064:Y:4839745.462222159
Вопрос: это координаты на плоскости, выраженные в метрах относительно какой-то точки 0,0?

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя