|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Координаты опор линии электропередачи находятся в таблице в полях Х и Y. Одна опора обозначена как начало ЛЭП. Естественно, что опоры в таблице находятся не в том же порядке, что и в ЛЭП. Нужно выполнить сортировку так что бы опора, обозначенная как начало ЛЭП, шда первой, дальше идёт ближайшая к ней и т.д. Сейчас это делается средствами Delphi на стороне клиента. Нельзя ли это сделать SQL-запросом ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:17 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
не понятно. в таблице хранятся опоры (с координатами) только одной именно этой ЛЭП? а не могут быть в таблице опоры от другой ЛЭП? просто потому, что они опоры? если да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая. -------------- если нет, то поиск ближайшей опоры нужно делать по расстоянию между опорами. допустим, что есть опоры K (Xk, Yk) и M (Xm, Ym) расстояние между ними Код: sql 1.
т.е., из всего списка опор нужно найти СЛЕДУЮЩУЮ опор, расстояние к которой L от ТЕКУЩЕЙ опоры наименьшее. после нахождения СЛЕДУЮЩЕЙ опоры, мы: 1) исключаем СЛЕДУЮЩУЮ опору из списка поиска 2) ТЕКУЩАЯ опора = СЛЕДУЮЩАЯ опора 3) СЛЕДУЮЩАЯ опора = NULL 4) ищем снова СЛЕДУЮЩУЮ итак, пока список поиска не кончится (кол-во элементов в списке поиска станет равно нулю). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:42 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatsky, да! Аналитическая геометрия ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:44 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOP, тоже не понимаю, зачем хранить именно опоры. Хранить надо начало и конец сегмента между двумя опорами с привязкой к идентификаторам опор и их географическим координатам. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:48 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
О, знакомая темка. :) kudatskyКоординаты опор линии электропередачи находятся в таблице в полях Х и Y. Одна опора обозначена как начало ЛЭП. Естественно, что опоры в таблице находятся не в том же порядке, что и в ЛЭП.Подождите, должна же быть таблица, в которой хранятся сами опоры. Она есть? Если есть, покажите её поля (атрибуты или DDL). Соответственно, от этого зависит и всё остальное, включая сортировку и пр. (разумеется, любую сортировку, которую вы делаете на клиенте, можно сделать и на стороне сервера). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:56 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_devне понимаю, зачем хранить именно опоры.Потому что опоры - это очень важный справочный объект per se. rdb_devХранить надо начало и конец сегмента между двумя опорамиИ что это даст? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 00:58 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOPв таблице хранятся опоры (с координатами) только одной именно этой ЛЭП? а не могут быть в таблице опоры от другой ЛЭП? просто потому, что они опоры?Это не проблема, там мастер-деталь всегда (должна быть). PEAKTOPесли да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая.Поддерживаю. При чём никакой "поиск ближайшей опоры" обычно не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:00 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамопоры - это очень важный справочный объект per se. И поэтому они обычно пронумерованы, так что задача аффтара решается простой сортировкой по номеру опоры в линии. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:20 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамПотому что опоры - это очень важный справочный объект per se.Не спорю, что опоры - очень важный справочный объект для базы данных, в которой хранится структура ЛЭП. Я лишь не понимаю, зачем упираться именно в эту информацию для составления карты ЛЭП. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:24 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамPEAKTOPесли да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая.Поддерживаю. При чём никакой "поиск ближайшей опоры" обычно не нужен. Гаджимурадов Рустамrdb_devХранить надо начало и конец сегмента между двумя опорамиИ что это даст? :) ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:28 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, идея с нумерацией опор ЛЭП от источника самая зачетная. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:36 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov> И поэтому они обычно пронумерованы Они всегда пронумерованы. > задача решается простой сортировкой по номеру опоры в линии. Нет, нумерация опор может не соответствовать нужной сортировке, более того, нумерация может быть "не целочисленной". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 01:43 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_devPEAKTOP, тоже не понимаю, зачем хранить именно опоры.... не понимаете потому, что малый опыт работы во внедрении ERP. --- тут есть два варианта: 1) у Т.С. - курсовой. не, конечно можно заняться просвещением, обїяснить Т.С. почему его структура неправильная, но ему нужно сдать курсовой, а там - хоть трава не расти. и ваши объяснения ему до лампочки, Т.С. сдал и забыл . 2) Т.С. рассказал о работающей вот прямо сейчас системе (оценку интеллектуальных способностей проектировщика системы производите самостоятельно, это - не тема данного топика). дык вот, тут нужно подходить из того, что система работает, данные вносятся. следовательно, все новые изыски должны быть такими, что не уложат работу системы (и старых приложений), а только дополнят их. поэтому, мы для решения задачи должны оперировать сложившейся парадигмой как с аксиомой. а это значит: да, мы можем создать дополнительную таблицу для хранения связей, но кто их будет туда вносить? ну, или пишите триггер с намёком на ИИ, который будет строить связи в этой таблице. вопросы: 1) всегда ли правильно? 2) как вы проапгрейдите базы на филиалах в случае гос.структуры, где филиалы вы знаете не только лишь все (с) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 02:11 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_dev> Я лишь не понимаю Так и есть, не понимаешь. Читай про бритву Оккама. P.S. Я уж молчу, что по опоре могут проходить разные линии, участки и отрезки, но не знаю, встречается ли подобное у ТСа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 02:11 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOP> где филиалы вы знаете не только лишь все (с)? Сразу чувствуется, что матерый волчара... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 02:13 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOPне понимаете потому, что малый опыт работы во внедрении ERP.Скорее, SCADA или DAS, но не суть. И да, не каждый день приходится заниматься внедрёжем. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 03:36 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамrdb_dev> Я лишь не понимаю Так и есть, не понимаешь. Читай про бритву Оккама.Возможно... Так как наша тема не ЛЭП, а преобразование и защита 220,110кВ/27.5,10,6кВ,/5,3.3кВ/380В То есть то, к чему эти ЛЭП приходят. Гаджимурадов РустамP.S. Я уж молчу, что по опоре могут проходить разные линии, участки и отрезки, но не знаю, встречается ли подобное у ТСа. Да задляпожуйлиста! Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 04:03 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_dev ё-моё... вот чего Вы повелись на провокацию? Рустам любит подколоть, тем более с его хорошей математической подготовкой. --- по озвученной Рустамом схеме мы имеем ДВА графа. то, что у этих двух графов некоторые вершины совпадают - ну, так получилось (перевожу на практический язык: на одной и той же опоре на высоте 30м идет одна линия, а на высоте 20м - другая линия). т.е. эти вершины не связны НИКАК - это ДВА разных графа. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 04:11 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOPпо озвученной Рустамом схеме мы имеем ДВА графа. то, что у этих двух графов некоторые вершины совпадают - ну, так получилось (перевожу на практический язык: на одной и той же опоре на высоте 30м идет одна линия, а на высоте 20м - другая линия). т.е. эти вершины не связны НИКАК - это ДВА разных графа.Я в курсе, что по опорам может идти не одна и не две линии, потому и забабахал таблицу с линиями. Разве что, в таблицу с линиями можно было добавить высоту и src_id/dst_id для идентификаторов объектов источника тока в линии и потребителя/подстанции, но для примера это не критично. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 04:26 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_dev... но для примера это не критично. Можно я этого хомячка Новогодней волшебной палочкой потыкаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 10:30 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovГаджимурадов Рустамопоры - это очень важный справочный объект per se. И поэтому они обычно пронумерованы, так что задача аффтара решается простой сортировкой по номеру опоры в линии.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 11:09 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOPтут есть два варианта: - Брехня!... (из кины) Каждый из них имеет по 2 подпункта, итого 4 шт.. PEAKTOP1) у Т.С. - курсовой. 1.1 Условие ТС переврал на уровне своего понимания задачи. 1.2 Препод - чудак. Сам предметную область (ЛЭП-ы) ни в зуб ногой. PEAKTOP2) Т.С. рассказал о работающей вот прямо сейчас системе 2.1 Работающей, но как-то так... (Пробки шибает иногда.) 2.2. Какбэ работает, но больше не работает... (Автоматы защиты рубаются наф в неусточиво-циклической периодичностью.) PEAKTOPРустам любит подколоть, тем более с его хорошей математической подготовкой. А ща мы и его куркулятером ткнем... - А чё там на щет нагрузочной способности кабелей ЛЭПа? Ведь без учета оной всё остальное - задачка по раскладыванию счетных палочек пусканию мыльных пузерей. PS: Имею личный опыт по аварийной прокладке доп. ЛЭПы в зимне-ночных условиях перепаханного поля, путем перемещения из точки А в пункт Б 2-х тонного прицепа дизель-электро-генератора на расстояние 500 метров методом ручной тягой. Аксиома: - Что не доходит через голову, влетает "на-раз" через руки или ноги. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 11:22 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
PEAKTOP> т.е. эти вершины не связны НИКАК - это ДВА разных графа. Графы (линии, участки, ветвления) - разные, а вершины (опоры) - одни. Соответственно, M:N. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 12:55 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Di_LIne Как ты угадал один из моих ночных кошмаров? Одно время баловался управлением сном, заставляя мозг демонстрировать полёт без каких-либо доп.приспособлений. Летать удавалось только ниже крыш домов, так как при попытке подняться выше мозг демонстрировал именно такую картинку. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 13:32 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
rdb_devЛетать удавалось только ниже крыш домов... Заметно по результатам... Персональный подарок на НГ: ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 14:04 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Di_LIne2.1 Работающей, но как-то так... (Пробки шибает иногда.) 2.2. Какбэ работает, но больше не работает... (Автоматы защиты рубаются наф в неусточиво-циклической периодичностью.) Хы-хы... На 220/110кВ тот самый, какбэ, "автомат" представляет их себя эпических размеров шкаффчик с пружинно-выкатным элементом с четырьмя контакторами толщиной в руку. Пока пружинку не заведешь - нагрузочку не включишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 14:19 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Господа, флудить ходите в Пятницу, не тут. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2016, 15:15 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Уважаемые коллеги ! Всех с Новым годом! Извините что из-за потребления освежающих напитков поздно возвратился в дискуссию. Внесу некоторую ясность в задачу. 1. Структура данных несколько сложнее, чем я её описал: на самом деле таблиц несколько и в них хранятся опоры множества ЛЭП , но не в этом суть. Упростим задачу. Считаем, что опоры нужной ЛЭП уже выбраны в отдельную таблицу. 2. Все опоры пронумерованы, но номера не уникальны. Бывает (иногда) что опоры ЛЭП нумеруют и с начала и с конца. Это явная глупость, но она случилась в незапамятные времена и исправить её уже нельзя. 3. Каждая опора имеет уникальный индекс в БД, но по индексу сортировать бессмысленно, т.к. опора, вставленная в середину ЛЭП после сортировки окажется в конце. 4. Сейчас я делаю это так: а. Читаю всё в Delphi. б. Проверяю расстояния от первой опоры до всех остальных и нахожу ближайшую. в. Проверяю расстояния от найденной ближайшей опоры до всех остальных и нахожу следующую ... и т.д. Сейчас я вижу 3 выхода: - оставить всё как есть - сделать из Delphi - кода UDF - переписать всё на PSQL и сделать хранимую процедуру Суть вопроса в следующем: - нельзя ли этот алгоритм реализовать в виде запроса SELECT - не будет ли этот SELECT компактнее ? Сейчас в Delphi-коде 400 строк - не будет ли этот SELECT работать быстрее ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 14:14 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatskyИзвините что из-за потребления освежающих напитков - Завязывай с горячительными, а то и так совсем плохо.... kudatsky2. Все опоры пронумерованы, но номера не уникальны. Бывает (иногда) что опоры ЛЭП нумеруют и с начала и с конца. Это явная глупость, но она случилась в незапамятные времена и исправить её уже нельзя. 3. Каждая опора имеет уникальный индекс в БД ... (Выделение мну.) Далее обсуждать тут неча. Одно противоречит другому. Этот бред не спишешь на НГ! - Кто мешает "работать"(строить алгоритм) по "уникальным индексам" опор? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 15:02 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatsky- не будет ли этот SELECT работать быстрее ? Не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 15:03 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatskyСейчас я вижу 3 выхода: Попробую по доброму, но образно, объяснить глупость сего вопроса. - Можно ли слетать на Луну? - Ва-апче мона, но лично тебе - ни-зя! Не хватает у тебя знаний, пониманий, образований и прочего для такой хотелки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 15:21 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
I'm sory за фразу "Каждая опора имеет уникальный индекс в БД" Следовало бы написать "Имеется первичный ключ" Di_LIne > Судя по велеречивости и уровню шуток, вы из-за новогоднего стола выбрались слишком поздно... Dimitry Sibiryakov > Спасибо за внятный и категоричный ответ. Но как такой запрос построить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 23:05 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatskyНо как такой запрос построить ? Вообще-то я сказал "обломись, запросом будет медленнее и сложнее".. Да и какой "такой" запрос? Ты хочешь цепочку ближайших опор, начиная со стартовой? Рекурсивный СТЕ тебе в руки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 23:19 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatsky> Суть вопроса в следующем: > - нельзя ли этот алгоритм реализовать в виде запроса SELECT > - не будет ли этот SELECT компактнее ? Сейчас в Delphi-коде > 400 строк > - не будет ли этот SELECT работать быстрее ? 1. Скорее всего, можно. 2. Скорее всего, не будет. 3. Скорее всего, не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2017, 23:25 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatsky, по расстояниям - в ФБ 2.5 есть cte см. пример 7 и далее http://www.sqlbooks.ru/printarticle.aspx?part=02&file=sql200509 в ФБ все это работает ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2017, 01:44 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Всем спасибо ! СТЕ обязательно попробую ! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2017, 02:02 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
kudatsky4. Сейчас я делаю это так: а. Читаю всё в Delphi. б. Проверяю расстояния от первой опоры до всех остальных и нахожу ближайшую. в. Проверяю расстояния от найденной ближайшей опоры до всех остальных и нахожу следующую ... и т.д. Ну вот еще пара идей: 1. Выбирать с сортировкой по одной из координат. Все таки, эти опоры врядли образуют петли, скорее ближе к прямой линии? 2. Подсчитать один раз расстояние от каждой опоры к первой, далее выбирать с сортировкой по этому расстоянию. 3. Все-таки добавить в табличку какой-то порядковый номер, любым образом подсчитать его, проверить, если где-то что не так - подправить и пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2017, 13:07 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
На сколько я в курсе ЛЭП бывают не только прямолинейные, особенно низковольтные. И если будет нечто в виде острого угла или обход препятствия через которое нельзя пробросить кабель напрямую то не исключена ситуация когда ближайшая опора не является той на которую уходит кабель. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 07:30 |
|
Географическая сортировка
|
|||
---|---|---|---|
#18+
Просто из логики: кажется мне, что лучшим решением будет ввести нумерацию опор в рамках каждой линии в таблицу. Один раз просчитать её, проверить (легче всего даже визуально), и потом уже только актуализировать при вставках. Потому что в самом деле - ближайшая опора не обязательно будет следующей (острый угол). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 10:56 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561770]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 439ms |
0 / 0 |