Программа set4msk.

26 posts / 0 new
Последнее сообщение
dab
Программа set4msk.

Тема для обсуждения проекта set4msk .

Сергей_Z
Аватар пользователя Сергей_Z
ПОМОГИТЕ

Здравствуйте, подскажите пожалуйста, что я делаю не так с программкой set4msk??? :((((
У меня при расчёте вылетает ошибка следующего содержания..:(((

"В описании проекции 8 задано слишком много параметров CoordSys"

Где загвоздка? Первая проекция = СК42, зона 10, а вторая условная (сориентированный на север план участка, который мы снимали на производственной практике).....
Заранее спасиба. С уважением Сергей.

dab
слишком много параметров CoordSys

Сергей, здравствуйте.
Мало информации о вашей проблеме.
Перешлите мне файл mapinfow.prj полностью или те строки, после добавления которых появилась ошибка, на адрес admin@mapbasic.ru.
Да, и какая версия MapInfo у Вас?

dab
Разделитель целой и дробной частей

Сергей, здравствуйте.
Письмо получил, файлы посмотрел.

1. Что бы избежать сообщения "В описании проекции 8 задано слишком много параметров CoordSys", необходимо в панели управления Windows, "Язык и региональные стандарты", "Настройка региональных параметров" изменить "Разделитель целой и дробной части" с запятой на точку.

2. Со структурой таблиц всё нормально, атрибутика не важна, главное порядок точек в обеих таблицах. Если точка в одной таблице первая, то эта точка и в другой таблице должна быть первой.

А вот расчёт не удаётся провести с приемлимой точностью :-(
Что-то с координатами не то. Для работы set4msk лучше всего использовать известные координаты точек ГГС или ОМС.

Сергей_Z
Аватар пользователя Сергей_Z
Программа set4msk.

Спасибо большое за подсказку, сменил всё заработало, а с координатами да был косяк = первая точка не оттуда .. :((((
Всё равно спасибо огромное за программку, теперь удалось посадить план, туда куда нужно.

Andrew_K1982
Программа set4msk

А что именно делает эта программа set4msk, и хорошо б на нее сылку....

dab
RE: что именно делает эта программа set4msk
dab
Вопрос по set4msk

Я вот смотрю на Яндекс метрику и вижу более 30 загрузок set4msk.
Коллеги, кто-то пользуется на практике?
Я то вот периодически пользуюсь и часто Мапинфо выдаёт ошибку под названием "Нераспознанная ошибка" :-(
Ошибка на строке 217

216 sCoorSys = "CoordSys Earth Projection 8, 1001, ""m"", " +Format$(i + j/60, ".###########")+ ", 0, 1, 0, 0"
217 Run Command "Set " + sCoorSys

Повторяемости нет, всё время на разных значениях меридиана.
Ошибка выходит,например, при значении

Set CoordSys Earth Projection 8, 1001, "m", 51.2, 0, 1, 0, 0

После остановки утилиты, ввожу эту команду в окне MapBasic - всё нормально выполняется.
Что может быть? В какую сторону копать?

lokks
Аватар пользователя lokks
проблемка, хэлп

День добрый, если не туда пишу с проблемкой - пните куда нужно)

Пишу программку для реверса всех полилиний одного слоя(просто с выбранным объектом проблем не возникло), но после выбора таблицы из попап-менюшки не могу ничего в переменную типа object записать: в строке
curobj = tab_name.obj
(tab_name - переменная типа стринг, curobj - переменная типа объект) выдает ошибку unrecognized command.
ЧЯДНТ?

dab
RE: проблемка, хэлп

Попробуйте так


Dim sCommand As String
sCommand = "curobj=" +tab_name+ ".obj"
Run Command sCommand

lokks
Аватар пользователя lokks
помогло!

Спасибо огромное, помогло.
Никогда б сам не додумался до такого извращения)

lokks
Аватар пользователя lokks
а нет, поспешил.

а нет, поспешил. откомпилилась-то да, но curObj не определяется.

dab
но curObj не определяется

но curObj не определяется
Что имеете в виду? Подробнее можно?
Какие версии MapInfo и MapBasic?
А лучше код или часть кода показать.

lokks
Аватар пользователя lokks
я уж сюда выгружу текст.

мапинфа и бэйсик 9.5
пишет ошибку: переменная curObj не определена

Include "MAPBASIC.DEF"
Include "MENU.DEF"
Declare Sub MAIN
Declare Sub Revers_layer 'реверс всех объектов слоя
Declare Sub WRKEND
Dim tab_name as string
Dim curObj, my_obj_new As Object, tablenum, cnt_points, i, j, k as Integer, cnt_raws as smallint
Dim tablelist() As String
Dim sCommand As String

'----------------------------
Sub MAIN
OnError Goto HandleError
Create Menu "Реверс порядка вершин" As
"Все объекты слоя" Calling Revers_layer,
"Закрыть" Calling WRKEND
Alter Menu Bar Add "Реверс порядка вершин"
Exit Sub
HandleError:
Note Error$()
Exit Sub
End Sub

'----------------------------

Sub Revers_layer

If NumTables() > 0 Then
i = NumTables()
j = 0
k = 1
ReDim tablelist(i)
For i = 1 to NumTables()
If TableInfo(i, TAB_INFO_TEMP) = FALSE Then
tablelist(k) = TableInfo(i, TAB_INFO_NAME)
j = 1
k = k + 1
End If
Next
If j = 0 Then
Note "Нет открытых таблиц"
Exit Sub
End If
Else
Note "Нет открытых таблиц"
Exit Sub
End If

Dialog
Title "Выберите таблицу для реверса линий"
Width 220
Control StaticText
Position 3, 8
Title "Карта(таблица) с линиями"
Control ListBox
Position 3,28
Width 190
Height 60
Title From Variable tablelist
Value 0
Into tablenum

Control OKButton
ID 3
Width 70
Position 20, 90
Control CancelButton
ID 4
Width 70
Position 115, 90
If Not CommandInfo(CMD_INFO_DLG_OK) Then
Note "Завершение с ошибкой: Отмена операции"
Exit Sub
End If
If tablenum = 0 Then
Note "Завершение с ошибкой: Не указаны данные"
Exit Sub
End If

tab_name = TableInfo(tablenum, TAB_INFO_NAME)
'Set Map Layer tab_name Arrows On
print tab_name
cnt_raws=TableInfo(tab_name, TAB_INFO_NROWS)
print cnt_raws
for j=1 to cnt_raws
Fetch rec j From tab_name

sCommand = "curObj=" +tab_name+ ".obj"
Run Command sCommand
print curObj
cnt_points = ObjectInfo(curObj, OBJ_INFO_NPNTS)
Create pline into variable my_obj_new 0

for i=1 to cnt_points
Alter object my_obj_new Node add (ObjectNodeX(curObj,1,i), ObjectNodeY(curObj,1,i))
next
update tab_name
set obj=my_obj_new where rowid=j
next

End Sub
'----------------------------
Sub WRKEND
End Program
End Sub

lokks
Аватар пользователя lokks
UPD: mapinfo 9.5.1

UPD: mapinfo 9.5.1
mapbasic 9.0

dab
Давайте, проще сделаем :)

Давайте, проще сделаем :)

...
for j=1 to cnt_raws
Select * From tab_name Where RowId = j Into qTemp NoSelect
curObj = qTemp.obj
...

lokks
Аватар пользователя lokks
ДАААА!!!

Огроменнейшее спасибо!!!

п.с. очень приятный сайт, вечерком посмотрю получше, вдруг чего и от меня полезного найдется)

dab
Спасибо :)

Спасибо :)

Woland
Оказия!!

Добрый день! Проблема следующая
Всё сделал как описано в "Определение параметров МСК для mapinfow.prj".
В тексте сообщения прописано:
"Начало процесса подбора параметров.
Процесс завершен."
А ГДЕ ОСЕВОЙ МЕРИДИАН И СМЕЩЕНИЯ ПО X и Y???
Помогите, пожалуйста разобраться!

dab
Значит не удалось подобрать

Значит не удалось подобрать параметры с заданной точностью (0.03 метра).
Идеальный вариант для определения параметров - использовать две точки из официальных каталогов государственной геодезической сети (ГГС) или опорной межевой сети (ОМС). Остальные варианты практически могут превратиться в "танцы с бубном".
Что могу посоветовать:
1. попробуйте посчитать с худшей точностью: 0.1 метра или 1 метр ... Смотря какие практические цели преследуете - может Вам и достаточно точности в 1 метр.
2. если данные не секрет - присылайте мне на почту admin@mapbasic.ru координаты Ваших точек и лучше сразу файлами MapInfo. Я посмотрю что можно сделать.

Марьян
Аватар пользователя Марьян
help!!!

Здравствуйте,возникла необходимость найти параметры МСК и решил воспользоваться вашей программой set4msk.Вылетела ошибка: "В описании проекции 8 задано слишком много параметров CoordSys".Исправил следующее : Что бы избежать сообщения "В описании проекции 8 задано слишком много параметров CoordSys", необходимо в панели управления Windows, "Язык и региональные стандарты", "Настройка региональных параметров" изменить "Разделитель целой и дробной части" с запятой на точку.
Эту ошибку перестало выдавать. Стало вылетать следующее "Начало процесса подбора параметров.
Процесс завершен." Я так понимаю что параметром мне не видать. И еще такой вопрос,почему эта программа рассматривает диапазон только в 3 градуса,есть же зоны и 6-ти градусные???

dab
1. Значит по Вашим данным не

1. Значит по Вашим данным не удалось подобрать параметры с точностью до 0.03 м. Попробуйте посчитать с другой точностью 0.05 ... 0.2 ... 0.5 ...
2. Утилита делалась по расчёт параметром МСК регионов РФ, а они 3-градусные. Исходный код открыт, исправьте в коде
For i = iDegrBegin to (iDegrBegin + 3)
на
For i = iDegrBegin to (iDegrBegin + 6)
и будет считать 6 градусную

Никола
помогите уточнить параметры мск26-95

Подбираю параметры для мск26-95 с помощью set4msk. Имею 3 точки (ОМС) в мск-26. Подобрал с точностью 0,10м следующие параметры: осевой меридиан 44,75, смещение по долготе 2300005,23, по широте -4512886,9. можно ли уточнить смещение по широте, если смещение по долготе явно 2300000, а осевой скорее всего так и есть?

где я?

admin
Как вариант, попробуйте

Как вариант, попробуйте 4512900.566
Это уже гадание-подбирание, а не расчёт :)

denny123
Вопрос

Есть таблица с растром в Non-Earth(meter), я создал копию с проекцией и смещением по точкам. Итог:
метровая -
!table
!version 300
!charset WindowsCyrillic

Definition Table
File "60-51-31-2.tif"
Type "RASTER"
(1284194.9799999713,407289.63000004366) (0,0) Label "Pt 1",
(1288047.349999994,407289.63000004366) (11007,0) Label "Pt 2",
(1288047.349999994,402606.62000001717) (11007,13380) Label "Pt 3",
(1284194.9799999713,402606.62000001717) (0,13380) Label "Pt 4"
CoordSys NonEarth Units "m"
Units "m"
RasterStyle 4 1
RasterStyle 7 16777215

с проекцией(EPSG:4326) -
!table
!version 300
!charset WindowsCyrillic

Definition Table
File "60-51-31-2_4326.tif"
Type "RASTER"
(28.520782,56.956519) (1864,8557) Label "Pt 1",
(28.5722743,56.9815424) (10735,520) Label "Pt 2",
(28.5684587,56.9644204) (10135,5976) Label "Pt 3",
(28.5219009,56.9574144) (2072,8300) Label "Pt 4"
CoordSys Earth Projection 1, 104
Units "degree"
RasterStyle 4 1
RasterStyle 7 16777215

решил найти смещение и установить проекцию для оставшихся сотни таких растров с помощью программы set4msk.
Задал таблицу с проекцией(4326) и исходную метровую, после первой ОК выдает ошибку:
(set4msk.mb:117) Cannot perform this operations on table "с проекцией"
Что не так делаю?

dab
Встречный вопрос:

Встречный вопрос:
1. Как именно Вы "создал копию с проекцией и смещением по точкам"? В Мапинфо нет стандартных инструментов для перехода от план-схемы к проекции.
Set4msk НЕ работает с растровыми таблицами!
Строка 117 Select * From sTableNamePrj Where RowId = 1 Into qTemp просто запрос к таблице, но именно к векторной таблице, а не к растровой!
Если остались вопросы - высылайте на admin@mapbasic.ru фрагменты данных. Без наглядных примером сложно понять проблему.