СК DST UTM(или ЛЮБАЯ ПРЯМОУГОЛЬНАЯ СК БЛИЗКАЯ К НИЖЕГОРОДСКОЙ ОБЛ)
СК SRC МЕЖДУНАРОДНАЯ СК с GPS координатами(что б эти координаты в яндекс подставить и он точку отобразил)
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
Вы собрались условно "к милям прибавить километры" и радоваться получившемуся числу.ivkomn писал(а): ↑06 мар 2019, 10:31На пальцах можно как-то объяснить:
1. выбираешь в своей системе координат нулевую точку и получаешь её GPS координаты в градусах
2. берешь класс такой-то библиотеки https://github.com/locationtech/proj4j
2. вставляешь в него GPS координаты в градусах(из п1), с такими-то параметрами
3. получаешь координаты в МЕЖДУНАРОДНОЙ прямоугольной системе координат
4. высчитываешь разницу по Х и У между своей СК и международной
5. добавляешь эту разницу ко всем своим координатам
6. переводишь свои координаты в GPS в градусы
Код: Выделить всё
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);
Код: Выделить всё
longlat.setEllipsoid(Ellipsoid.KRASSOVSKY);
longlat.setLonCDegrees(54);
longlat.setProjectionLatitude(43);
Код: Выделить всё
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);
Код: Выделить всё
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);
Код: Выделить всё
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);
Код: Выделить всё
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
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя
© GIS-Lab и авторы, 2002-2017. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).