Аналитика
http://www.geosystema.net/forum/

Запрос на функцию
http://www.geosystema.net/forum/viewtopic.php?f=1&t=49
Страница 27 из 92

Автор:  Sergey Oleynik [ 16 ноя 2010 15:30 ]
Заголовок сообщения:  Re: Запрос на функцию

lexa писал(а):
Нужна функция, аналог Map.SortByParameter ParameterIndex +/- для слоев (Map.SortByLayer LayerIndex +/-).
Непонятно что она должна делать.
Что значит посортировать все объекты на карте по одному указанному в LayerIndex слою?
Если вы хотите сортировать объекты карты по значению ID их слоев, то это можно сделать через Map.SortByParameter -7 (служебный параметр -7 содержит ID слоя объекта).
Также можно сортировать по имени слоя, если использовать Map.SortByParameter -5.
voha писал(а):
Ніяк не можу знайти функції @Map.Parameters.Delete Code, чи є така? Довго шукав у списку - ась!
А она точно нужна? :)
Дело в том что при удалении параметра из середины списка слетит вся их последовательная нумерация и доступные слоям параметры перепутаются. Так что удалять можно будет разве что свои, добавленные в конец списка, параметры.

Автор:  voha [ 17 ноя 2010 00:21 ]
Заголовок сообщения:  Re: Запрос на функцию

Дякую, розібрався. Мова йшла дійсно за останні у списку параметри. Справа в тому, що, зовнішня програма має очистити і заповнити (оновити) значення окремих параметрів усих об'єктів шару. Всі відповідні для цього функції працюють з селектованими об'єктами, а воно, якось, не дуже гарно получається при автоматизації. Мабуть треба якось відключити на певний час оновлення екрану. От і спало на думку - спочатку видалити параметри, а потім добавити. Але якщо так - хай так.

Питання тепер в іншому. Як повернути порядковий номер шару в карті за відомими назвою шару або його ID? Всі функції для роботи з шаром ідентифікують його за порядковим номером у списку шарів. Але як бути, коли не відомо - є вже шар в карті чи нема? Аналізуєм список шарів карти (@Map.Layers.List) за назвою або ID, якщо шару нема - додаємо в хвіст списку (@Map.Layers.Add Code Type Name) вказавши ID, тип і назву. Отримуєм порядковий номер і працюємо з шаром за порядковим номером. А якщо шар з такою назвою та ID в карті вже є - треба дізнатись порядковий номер за відомим іменем або ID, інакше до функцій стосовно шарів не підходь? Як варіант є @Map.ReplaceTemplate Filename, де Filename - карта з заздалегідь спланованим порядком шарів у списку. Буду пробувати.

Автор:  Bondarets Alexander [ 17 ноя 2010 08:35 ]
Заголовок сообщения:  Re: Запрос на функцию

Цитата:
Як варіант є @Map.ReplaceTemplate Filename, де Filename - карта з заздалегідь спланованим порядком шарів у списку. Буду пробувати.


Лучше сделайте свою функцию которая перебирает весь список слоев, используя функции:

@Map.Layers.Count
@Map.Layers.Get Number

и возвращает номер слоя с заданным ID, или 0, если такой слой не найден.

Автор:  Sergey Oleynik [ 17 ноя 2010 16:19 ]
Заголовок сообщения:  Re: Запрос на функцию

voha писал(а):
Всі функції для роботи з шаром ідентифікують його за порядковим номером у списку шарів. Але як бути, коли не відомо - є вже шар в карті чи нема?

Функции работают не только по индексу, но и по ID. Для этого вместо индекса нужно подставить строку вида IDXXXXX, где XXXXX это код слоя. Но узнать, существует ли слой с определенным кодом действительно невозможно. Кроме как перебирать, как уже советовали, в скрипте все слои в поисках нужного номера. Но мы можем добавить готовую функцию. Что-то вроде @Map.Layers.IDToIndex, которая вернет номер слоя с указанным кодом (или 0 если такой слой не найден). Ну и аналогичную для параметров.

Автор:  voha [ 18 ноя 2010 16:34 ]
Заголовок сообщения:  Re: Запрос на функцию

Bondarets Alexander писал(а):
Лучше сделайте свою функцию которая перебирает весь список слоев, используя функции:
@Map.Layers.Count
@Map.Layers.Get Number
и возвращает номер слоя с заданным ID, или 0, если такой слой не найден.

Sergey Oleynik писал(а):
Но мы можем добавить готовую функцию. Что-то вроде @Map.Layers.IDToIndex, которая вернет номер слоя с указанным кодом (или 0 если такой слой не найден). Ну и аналогичную для параметров.

Варіант перебору можливий тільки у скрипті. До теми наступне.
Я хочу використати канал зв'язку Excel-Digitals, використовуючи ws2_32.dll, але не уявляю собі що таке багатопоточність (надіюсь "розгребу" функцію для прослуховування отриманих від Digitals-а відповідей). Задумано використати скрипти автозапуску:
1. Excel в процедурі автозапуску при внесенні даних посилає команду в Digitals виконати скрипт записаний для кнопки панелі інструментів, результатом роботи якого (скрипта) буде, наприклад, створення полігону з координатами вказаними в Excel), та закінчує процедуру. Функції запуску скрипта через натискання кнопки панелі інструментів немає, але посилання відповідного віконного повідомлення в дочірнє вікно (кнопку) вікна верхнього рівня (панелі інструментів) ініціювало б натискання цієї кнопки. Тут доступність різного набору кнопок з різними скриптами мала б забезпечитись наявністю відповідного файла *.tlb
2. При виникненні події вказаній в скрипті прикріпленому до активовованої кнопки панелі інструментів Digitals-a, скрипт виконується, а дані (як результат виконання скрипта) відповідною функцією (якої також немає) відсилаються на порт TCP/IP (на сокет Excel, який прослуховується). При отриманні відповіді, Excel виконує відповідні розрахунки та відображає результат.

Функція @Map.Layers.IDToIndex, як на мене, згодилася б по-любому при роботі з різними версіями карт і різними шарами чи параметрами, а як що до описаного вище?

Якщо цей хід реальний - треба відповідні функції, якщо це маячня - буду шукати щось інше.

Автор:  Slaventis [ 23 ноя 2010 18:26 ]
Заголовок сообщения:  Re: Запрос на функцию

Dmitry_Zolotar писал(а):
Slaventis писал(а):
Жду ваших питань, критеріїв і т. д. і т. п. Дуже хочу побачить як такий об'єм буде виглядать у вашому варіанті і скільки це у вас займе часу? :D Особливо хочу почути думку Піпи :D

Відео на тему

А так Слабо? :wink:

Вложения:

SRFile2010_11_16_17_16_23_78.avi [ 868.15 Кб | Просмотров: 12941 ]

Автор:  Dkrav [ 24 ноя 2010 10:49 ]
Заголовок сообщения:  Re: Запрос на функцию

как 2 факса отослать ;-)

Вложения:
.exe [283.08 Кб]
Скачиваний: 762

Автор:  paul [ 24 ноя 2010 12:37 ]
Заголовок сообщения:  Re: Запрос на функцию

Дааааа, это было круто. Мне бы такую панельку... :D

Автор:  azerty [ 24 ноя 2010 12:48 ]
Заголовок сообщения:  Re: Запрос на функцию

и мне тоже. ну если будете делиться))))

Автор:  Slaventis [ 24 ноя 2010 21:55 ]
Заголовок сообщения:  Re: Запрос на функцию

А тут багато землевпорядників та геодезистів? Таке відчуття шо тут одні програмісти!! В мене багато питань по створеню шаблонів :?:

Автор:  paul [ 25 ноя 2010 07:49 ]
Заголовок сообщения:  Re: Запрос на функцию

Тут спеціалісти широкого профілю. :D Але переважно геодезисти та землевпорядники. Про шаблони дуже багато інформації на форумі, та якщо не знайдете - питайте. Майже всі запити знаходять відповідь.

Автор:  IVua [ 25 ноя 2010 20:38 ]
Заголовок сообщения:  Re: Запрос на функцию

підскажіть якою командою ви створили панель "підписи", якщо можна детально
Dkrav писал(а):
.exe [283.08 Кб]

Автор:  kukin [ 25 ноя 2010 20:59 ]
Заголовок сообщения:  Re: Запрос на функцию

Создать такие планчики, это конечно Бомба!
Использую несколько иной подход, заливаю список координат для выноса в тахеометр (исходные точки и точки выноса).
В поле веду вынос (могу гонять хода от "исходных", когда вынос затруднен разными препятствиями), прибор ведет учёт своего местоположения, все измерения выноса записываю в память прибора.
Данные измерений(выноса) обычным методом скачиваю и обрабатываю в геодезии(с формированием тахеометрии), получаю готовый план(уже с реальными отклонениями).

Автоматического создания объектов, через функцию создание объекта по номерам точек (24 страничка темы) я так и не допросился.
Спасибо Дмитрию, он своим "Відео на тему", меня обрадовал давно забытой функцией Сервис\Отчет в сочетании с Правка\Вставить

Походу, функция Сервис\Отчет сама сортирует пикеты в порядке их создания (по номеру пункта), остается лишь вставить скопированный объект!
Лень заставит создать кнопочки :wink:

Автор:  Dmitry_Zolotar [ 26 ноя 2010 09:39 ]
Заголовок сообщения:  Re: Запрос на функцию

kukin писал(а):
Походу, функция Сервис\Отчет сама сортирует пикеты в порядке их создания (по номеру пункта), остается лишь вставить скопированный объект!

ObjectID создаваемых объектов последовательны, эта особенность неявно использовалась. А вот сортировка по ObjectID задавалась явно в Сервис-Отчет при первом вызове, при втором вызове сортировка была уже задана.

Автор:  Slaventis [ 29 ноя 2010 03:59 ]
Заголовок сообщения:  Re: Запрос на функцию

Хто підскаже як мені закоординувать відскановану чергову карту сільської ради??

Страница 27 из 92 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/