Изменить координаты шейп-файла
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Изменить координаты шейп-файла
Приветствую.
Дано: векторный слой (рамка будущей карты), сделана в проекции Пулково42-Гаусс-Крюгер зона 25.
Необходимо: вставить ее в карту в проекции Гаусс-Крюгер 21N так, чтобы она осталась симметричной, без поворота.
Есть решение?
Соответственно, сделать на карте фрейм с координатами зоны 25 по понятным причинам нельзя.
Дано: векторный слой (рамка будущей карты), сделана в проекции Пулково42-Гаусс-Крюгер зона 25.
Необходимо: вставить ее в карту в проекции Гаусс-Крюгер 21N так, чтобы она осталась симметричной, без поворота.
Есть решение?
Соответственно, сделать на карте фрейм с координатами зоны 25 по понятным причинам нельзя.
-
- Гуру
- Сообщения: 1153
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090239
- Откуда: г. Жуковский МО
Re: Изменить координаты шейп-файла
Я не очень понимаю, почему нельзя рамке назначить GK 21N, экспортировать ее в этой СК и все. Останется и та, и другая. Ну и на всякий случай сохранить два документа.
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Потому что получается либо вот так, как на картинке, либо шейп улетает куда-то за экстент и найти его не получается ("приблизить к слою" неактивно).
Спойлер
-
- Гуру
- Сообщения: 1153
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090239
- Откуда: г. Жуковский МО
Re: Изменить координаты шейп-файла
Давайте Вы выложите Ваш shp. Или ссылку. И карту. Можно на tikh-petr@yandex.ru. Ес-сно, без передачи и дальнейшего использования. А то дольше обсуждать будем.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
в ГК номер зоны (в миллионах) добавляется к горизонтальной координате (Х), потому и улетает. Нужно 25 заменить на 21 в Х (отнять 4,000,000), назначить (не перепоецируя) 21 зону, и, возможно, подвигать туда-сюда, чтобы не села поверх остального. Грузим shape в R/Python, меняем координаты, и правим зону в файле *.prj
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Именно так и пробовал, вычислил геометрию, изменил координаты - правда, в ArcMap - R/Python у меня нет (что такое R - не знаю).gamm писал(а): ↑28 мар 2025, 08:36в ГК номер зоны (в миллионах) добавляется к горизонтальной координате (Х), потому и улетает. Нужно 25 заменить на 21 в Х (отнять 4,000,000), назначить (не перепоецируя) 21 зону, и, возможно, подвигать туда-сюда, чтобы не села поверх остального. Грузим shape в R/Python, меняем координаты, и правим зону в файле *.prj
А они и не изменились, получается, в шейп-файле они как-то в неявном виде спрятаны.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
так не бывает, ничего там не спрятано, я его по байтам парсил

P.S. R - это язык, широко известный в узких кругах статистиков, бесплатная версия коммерческой системы S-PLUS, ее раньше к Арке приделывали, чтобы разные статистики считать

-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Я пока простой вариант покажу.gamm писал(а): ↑28 мар 2025, 11:13так не бывает, ничего там не спрятано, я его по байтам парсилА проекцию поменяли в *.prj файле у шейпа? Экспортируйте результат в MIF/MID, и выложите начало MIF файла, включая пару-другую координат. И проекцию заодно выложите. Проще всего текстом, с тегами code ("</>"), он длинные тексты сам под спойлер упрячет.
P.S. R - это язык, широко известный в узких кругах статистиков, бесплатная версия коммерческой системы S-PLUS, ее раньше к Арке приделывали, чтобы разные статистики считать![]()
В атрибутивной таблице я вычел 21 миллион. В надежде, что координаты изменятся.
В таблице действительно изменились. А при экспорте в другую программу - я вижу, что координаты х так и остались вида 25хххххх. Тут как номер зоны не меняй - ничего не изменится.
P.S. Сделать MID/MIF не могу, заблокирована функция Quick export в "Data Interoperability tools".
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
ни атрибутивная таблица, ни эта картинка, не имеют никакого отношения к решаемой задаче. Удачи!
P.S. Бесплатный GDAL (и бесплатный QGIS через тот же GDAL) прекрасно конвертируют шейпы во что угодно.
P.S. Бесплатный GDAL (и бесплатный QGIS через тот же GDAL) прекрасно конвертируют шейпы во что угодно.
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Спойлер
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 1001, "m", 148.5, 0, 1, 25500000, 0
Columns 7
OBJECTID LargeInt
ID LargeInt
L_WIDTH Decimal(13,11)
L_COLOR Decimal(19,11)
Shape_Leng Decimal(19,11)
x LargeInt
y LargeInt
Data
PLINE MULTIPLE 1
20
25416303.3881498 6655137.98194191
25425602.1202982 6654938.82832747
Спойлер
PROJCS["Pulkovo_1942_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",148.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
координаты 25416303.3881498 6655137.98194191 нужно поменять на 21416303.3881498 6655137.98194191, и т.д., и поправить центральный меридиан, теоретически на 123, но у вас что-то странное с зоной, у 25 должно быть 147, у вас там 148.5
Можно прямо в MIF сделать, сменив центральный меридиан, и добавив для сдвига строку TRANSFORM (см. документацию на MIF), нужно только ее подобрать, чтобы село куда надо тыц, а потом обратно в шейп, если надо.
Можно прямо в MIF сделать, сменив центральный меридиан, и добавив для сдвига строку TRANSFORM (см. документацию на MIF), нужно только ее подобрать, чтобы село куда надо тыц, а потом обратно в шейп, если надо.
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Нет, сдаюсь.
Координаты поменял, но ничего не открывается ни в ArcMap, ни в QGis, ни в Oasis montaj. Точки менял на запятые, и обратно.
Спасибо всем откликнувшимся.
Координаты поменял, но ничего не открывается ни в ArcMap, ни в QGis, ни в Oasis montaj. Точки менял на запятые, и обратно.
Спасибо всем откликнувшимся.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
расскажите, что и где вы меняли, и покажите, что получилось (опять начал с парой координат). Должно работать, там ничего сложного. Ниже переделал ваш фрагмент, все читается
MIF
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 1001, "m", 123, 0, 1, 21500000, 0
TRANSFORM 1,1,-4000000,0
Columns 1
OBJECTID Decimal(9, 0)
Data
PLINE MULTIPLE 1
2
25416303.3881498 6655137.98194191
25425602.1202982 6654938.82832747
Pen (0,2,16711680)
Код: Выделить всё
1
Последний раз редактировалось gamm 29 мар 2025, 21:30, всего редактировалось 1 раз.
-
- Активный участник
- Сообщения: 113
- Зарегистрирован: 06 мар 2020, 17:07
- Репутация: 22
- Откуда: Москва
Re: Изменить координаты шейп-файла
Я открыл mif-файл в excel. Заменил точки на запятые.
Вычел из первой колонки 25000000 (решил сделать без номера зоны, просто 21N).
Вернул точки-разделители обратно. Где были запятые - сделал запятые.
Файлы qmd и mid не трогал.
Вычел из первой колонки 25000000 (решил сделать без номера зоны, просто 21N).
Вернул точки-разделители обратно. Где были запятые - сделал запятые.
Файлы qmd и mid не трогал.
Спойлер
Код: Выделить всё
Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 1001, "m", 123, 0, 1, 500000, 0
Columns 7
OBJECTID LargeInt
ID LargeInt
L_WIDTH Decimal(13,11)
L_COLOR Decimal(19,11)
Shape_Leng Decimal(19,11)
x LargeInt
y LargeInt
Data
PLINE MULTIPLE 1
20
416303.388150 6655137.9819419
425602.120298 6654938.8283275
434901.167102 6654763.1065461
444200.489200 6654610.8158495
453500.047243 6654481.9555890
462799.801941 6654376.5251149
472099.713863 6654294.5241795
481399.743736 6654235.9523325
490699.852239 6654200.8093242
500000.000106 6654189.0950048
509300.147923 6654200.8093246
518600.256426 6654235.9523333
527900.286348 6654294.5241811
537200.198321 6654376.5251175
546499.953020 6654481.9554921
555799.511113 6654610.8157540
565098.833262 6654763.1064523
574397.880167 6654938.8282366
583696.612464 6655137.9819558
583696.612464 6655137.9819558
Pen (1,2,0)
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Изменить координаты шейп-файла
И у вас там табуляций Ёксель навставлял, похоже повлияло. Ёксель - зло. Сделайте как я говорил (см. пример), и будет вам щастье.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя