Аналитика 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 писал(а): Жду ваших питань, критеріїв і т. д. і т. п. Дуже хочу побачить як такий об'єм буде виглядать у вашому варіанті і скільки це у вас займе часу? Особливо хочу почути думку Піпи Відео на тему А так Слабо?
|
Автор: | Dkrav [ 24 ноя 2010 10:49 ] | ||
Заголовок сообщения: | Re: Запрос на функцию | ||
как 2 факса отослать
|
Автор: | paul [ 24 ноя 2010 12:37 ] |
Заголовок сообщения: | Re: Запрос на функцию |
Дааааа, это было круто. Мне бы такую панельку... |
Автор: | azerty [ 24 ноя 2010 12:48 ] |
Заголовок сообщения: | Re: Запрос на функцию |
и мне тоже. ну если будете делиться)))) |
Автор: | Slaventis [ 24 ноя 2010 21:55 ] |
Заголовок сообщения: | Re: Запрос на функцию |
А тут багато землевпорядників та геодезистів? Таке відчуття шо тут одні програмісти!! В мене багато питань по створеню шаблонів |
Автор: | paul [ 25 ноя 2010 07:49 ] |
Заголовок сообщения: | Re: Запрос на функцию |
Тут спеціалісти широкого профілю. Але переважно геодезисти та землевпорядники. Про шаблони дуже багато інформації на форумі, та якщо не знайдете - питайте. Майже всі запити знаходять відповідь. |
Автор: | IVua [ 25 ноя 2010 20:38 ] |
Заголовок сообщения: | Re: Запрос на функцию |
підскажіть якою командою ви створили панель "підписи", якщо можна детально Dkrav писал(а): .exe [283.08 Кб]
|
Автор: | kukin [ 25 ноя 2010 20:59 ] |
Заголовок сообщения: | Re: Запрос на функцию |
Создать такие планчики, это конечно Бомба! Использую несколько иной подход, заливаю список координат для выноса в тахеометр (исходные точки и точки выноса). В поле веду вынос (могу гонять хода от "исходных", когда вынос затруднен разными препятствиями), прибор ведет учёт своего местоположения, все измерения выноса записываю в память прибора. Данные измерений(выноса) обычным методом скачиваю и обрабатываю в геодезии(с формированием тахеометрии), получаю готовый план(уже с реальными отклонениями). Автоматического создания объектов, через функцию создание объекта по номерам точек (24 страничка темы) я так и не допросился. Спасибо Дмитрию, он своим "Відео на тему", меня обрадовал давно забытой функцией Сервис\Отчет в сочетании с Правка\Вставить Походу, функция Сервис\Отчет сама сортирует пикеты в порядке их создания (по номеру пункта), остается лишь вставить скопированный объект! Лень заставит создать кнопочки |
Автор: | 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/ |