powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Географическая сортировка
39 сообщений из 39, показаны все 2 страниц
Географическая сортировка
    #39378529
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Координаты опор линии электропередачи находятся в таблице в полях Х и Y.
Одна опора обозначена как начало ЛЭП. Естественно, что опоры в таблице находятся не в
том же порядке, что и в ЛЭП. Нужно выполнить сортировку так что бы опора, обозначенная
как начало ЛЭП, шда первой, дальше идёт ближайшая к ней и т.д.
Сейчас это делается средствами Delphi на стороне клиента. Нельзя ли это сделать
SQL-запросом ?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378534
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понятно.

в таблице хранятся опоры (с координатами) только одной именно этой ЛЭП?
а не могут быть в таблице опоры от другой ЛЭП? просто потому, что они опоры?

если да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая.

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

допустим, что есть опоры K (Xk, Yk) и M (Xm, Ym)

расстояние между ними
Код: sql
1.
 L = SQRT( POWER( (Xm - Xk), 2) + POWER( (Ym - Yk), 2) );



т.е., из всего списка опор нужно найти СЛЕДУЮЩУЮ опор, расстояние к которой L от ТЕКУЩЕЙ опоры наименьшее.

после нахождения СЛЕДУЮЩЕЙ опоры, мы:
1) исключаем СЛЕДУЮЩУЮ опору из списка поиска
2) ТЕКУЩАЯ опора = СЛЕДУЮЩАЯ опора
3) СЛЕДУЮЩАЯ опора = NULL
4) ищем снова СЛЕДУЮЩУЮ

итак, пока список поиска не кончится (кол-во элементов в списке поиска станет равно нулю).
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378536
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378537
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOP, тоже не понимаю, зачем хранить именно опоры. Хранить надо начало и конец сегмента между двумя опорами с привязкой к идентификаторам опор и их географическим координатам.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378540
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, знакомая темка. :)

kudatskyКоординаты опор линии электропередачи находятся в таблице в полях Х и Y.
Одна опора обозначена как начало ЛЭП. Естественно, что опоры в таблице находятся не в
том же порядке, что и в ЛЭП.Подождите, должна же быть таблица, в которой хранятся сами опоры. Она есть?
Если есть, покажите её поля (атрибуты или DDL). Соответственно, от этого зависит
и всё остальное, включая сортировку и пр. (разумеется, любую сортировку, которую
вы делаете на клиенте, можно сделать и на стороне сервера).
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378541
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devне понимаю, зачем хранить именно опоры.Потому что опоры - это очень важный справочный объект per se.

rdb_devХранить надо начало и конец сегмента между двумя опорамиИ что это даст? :)
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378542
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPв таблице хранятся опоры (с координатами) только одной именно этой ЛЭП?
а не могут быть в таблице опоры от другой ЛЭП? просто потому, что они опоры?Это не проблема, там мастер-деталь всегда (должна быть).

PEAKTOPесли да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая.Поддерживаю. При чём никакой "поиск ближайшей опоры" обычно не нужен.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378546
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамопоры - это очень важный справочный объект per se.

И поэтому они обычно пронумерованы, так что задача аффтара решается простой сортировкой по
номеру опоры в линии.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378547
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамПотому что опоры - это очень важный справочный объект per se.Не спорю, что опоры - очень важный справочный объект для базы данных, в которой хранится структура ЛЭП. Я лишь не понимаю, зачем упираться именно в эту информацию для составления карты ЛЭП.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378549
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамPEAKTOPесли да, то задача без другой таблицы где хранятся связи (между опорами) не решаемая.Поддерживаю. При чём никакой "поиск ближайшей опоры" обычно не нужен.
Гаджимурадов Рустамrdb_devХранить надо начало и конец сегмента между двумя опорамиИ что это даст? :)
???
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378554
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, идея с нумерацией опор ЛЭП от источника самая зачетная.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378556
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> И поэтому они обычно пронумерованы

Они всегда пронумерованы.

> задача решается простой сортировкой по номеру опоры в линии.

Нет, нумерация опор может не соответствовать
нужной сортировке, более того, нумерация может
быть "не целочисленной".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378563
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devPEAKTOP, тоже не понимаю, зачем хранить именно опоры....

не понимаете потому, что малый опыт работы во внедрении ERP.
---
тут есть два варианта:

1) у Т.С. - курсовой. не, конечно можно заняться просвещением, обїяснить Т.С. почему его структура неправильная, но ему нужно сдать курсовой, а там - хоть трава не расти.
и ваши объяснения ему до лампочки, Т.С. сдал и забыл .


2) Т.С. рассказал о работающей вот прямо сейчас системе (оценку интеллектуальных способностей проектировщика системы производите самостоятельно, это - не тема данного топика). дык вот, тут нужно подходить из того, что система работает, данные вносятся. следовательно, все новые изыски должны быть такими, что не уложат работу системы (и старых приложений), а только дополнят их. поэтому, мы для решения задачи должны оперировать сложившейся парадигмой как с аксиомой.
а это значит: да, мы можем создать дополнительную таблицу для хранения связей, но кто их будет туда вносить?

ну, или пишите триггер с намёком на ИИ, который будет строить связи в этой таблице. вопросы:
1) всегда ли правильно?
2) как вы проапгрейдите базы на филиалах в случае гос.структуры, где филиалы вы знаете не только лишь все (с) ?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378564
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev> Я лишь не понимаю

Так и есть, не понимаешь.
Читай про бритву Оккама.

P.S. Я уж молчу, что по опоре
могут проходить разные линии,
участки и отрезки, но не знаю,
встречается ли подобное у ТСа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378566
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOP> где филиалы вы знаете не только лишь все (с)?

Сразу чувствуется, что матерый волчара...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378578
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPне понимаете потому, что малый опыт работы во внедрении ERP.Скорее, SCADA или DAS, но не суть. И да, не каждый день приходится заниматься внедрёжем.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378579
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам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.
CREATE TABLE trans_tower
(
    id INTEGER NOT NULL,
    n DOUBLE PRECISION NOT NULL,
    e DOUBLE PRECISION NOT NULL,
  CONSTRAINT trans_tower__pk PRIMARY KEY (id),
  CONSTRAINT trans_tower__uq UNIQUE (n, e)
);

CREATE TABLE trans_lines
(
    id INTEGER NOT NULL,
    name VARCHAR(200),
  CONSTRAINT trans_lines__pk PRIMARY KEY (id),
  CONSTRAINT trans_lines__uq UNIQUE (name)
);

CREATE TABLE trans_map
(
    line_id INTEGER NOT NULL,
    tower_id INTEGER NOT NULL,
    sequence SMALLINT NOT NULL,
  CONSTRAINT trans_map__pk PRIMARY KEY (line_id, tower_id, sequence),
  CONSTRAINT trans_map__fk__trans_lines FOREIGN KEY (line_id)
    REFERENCES trans_lines (id) ON UPDATE CASCADE,
  CONSTRAINT trans_map__fk__trans_tower FOREIGN KEY (tower_id)
    REFERENCES trans_tower (id) ON UPDATE CASCADE
);

...
Рейтинг: 0 / 0
Географическая сортировка
    #39378580
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev

ё-моё...
вот чего Вы повелись на провокацию? Рустам любит подколоть, тем более с его хорошей математической подготовкой.

---
по озвученной Рустамом схеме мы имеем ДВА графа.
то, что у этих двух графов некоторые вершины совпадают - ну, так получилось (перевожу на практический язык: на одной и той же опоре на высоте 30м идет одна линия, а на высоте 20м - другая линия).

т.е. эти вершины не связны НИКАК - это ДВА разных графа.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378581
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPпо озвученной Рустамом схеме мы имеем ДВА графа.
то, что у этих двух графов некоторые вершины совпадают - ну, так получилось (перевожу на практический язык: на одной и той же опоре на высоте 30м идет одна линия, а на высоте 20м - другая линия).

т.е. эти вершины не связны НИКАК - это ДВА разных графа.Я в курсе, что по опорам может идти не одна и не две линии, потому и забабахал таблицу с линиями. Разве что, в таблицу с линиями можно было добавить высоту и src_id/dst_id для идентификаторов объектов источника тока в линии и потребителя/подстанции, но для примера это не критично.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378598
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev... но для примера это не критично.
Можно я этого хомячка Новогодней волшебной палочкой потыкаю?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378604
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovГаджимурадов Рустамопоры - это очень важный справочный объект per se.

И поэтому они обычно пронумерованы, так что задача аффтара решается простой сортировкой по
номеру опоры в линии.+1
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378606
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPтут есть два варианта:

- Брехня!... (из кины)
Каждый из них имеет по 2 подпункта, итого 4 шт..

PEAKTOP1) у Т.С. - курсовой.
1.1 Условие ТС переврал на уровне своего понимания задачи.
1.2 Препод - чудак. Сам предметную область (ЛЭП-ы) ни в зуб ногой.

PEAKTOP2) Т.С. рассказал о работающей вот прямо сейчас системе
2.1 Работающей, но как-то так... (Пробки шибает иногда.)
2.2. Какбэ работает, но больше не работает... (Автоматы защиты рубаются наф в неусточиво-циклической периодичностью.)

PEAKTOPРустам любит подколоть, тем более с его хорошей математической подготовкой.
А ща мы и его куркулятером ткнем...
- А чё там на щет нагрузочной способности кабелей ЛЭПа?

Ведь без учета оной всё остальное - задачка по раскладыванию счетных палочек пусканию мыльных пузерей.

PS: Имею личный опыт по аварийной прокладке доп. ЛЭПы в зимне-ночных условиях перепаханного поля, путем перемещения из точки А в пункт Б 2-х тонного прицепа дизель-электро-генератора на расстояние 500 метров методом ручной тягой.
Аксиома:
- Что не доходит через голову, влетает "на-раз" через руки или ноги.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378621
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOP> т.е. эти вершины не связны НИКАК - это ДВА разных графа.

Графы (линии, участки, ветвления) - разные, а
вершины (опоры) - одни. Соответственно, M:N.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378630
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne
Как ты угадал один из моих ночных кошмаров?
Одно время баловался управлением сном, заставляя мозг демонстрировать полёт без каких-либо доп.приспособлений. Летать удавалось только ниже крыш домов, так как при попытке подняться выше мозг демонстрировал именно такую картинку.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378633
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devЛетать удавалось только ниже крыш домов...
Заметно по результатам...
Персональный подарок на НГ:
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378636
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne2.1 Работающей, но как-то так... (Пробки шибает иногда.)
2.2. Какбэ работает, но больше не работает... (Автоматы защиты рубаются наф в неусточиво-циклической периодичностью.) Хы-хы...
На 220/110кВ тот самый, какбэ, "автомат" представляет их себя эпических размеров шкаффчик с пружинно-выкатным элементом с четырьмя контакторами толщиной в руку. Пока пружинку не заведешь - нагрузочку не включишь.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378640
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, флудить ходите в Пятницу, не тут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378705
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги ! Всех с Новым годом!
Извините что из-за потребления освежающих напитков
поздно возвратился в дискуссию.
Внесу некоторую ясность в задачу.
1. Структура данных несколько сложнее, чем я её описал:
на самом деле таблиц несколько и в них хранятся опоры
множества ЛЭП , но не в этом суть. Упростим задачу.
Считаем, что опоры нужной ЛЭП уже выбраны в отдельную
таблицу.
2. Все опоры пронумерованы, но номера не уникальны. Бывает
(иногда) что опоры ЛЭП нумеруют и с начала и с конца. Это
явная глупость, но она случилась в незапамятные времена и
исправить её уже нельзя.
3. Каждая опора имеет уникальный индекс в БД, но по индексу сортировать
бессмысленно, т.к. опора, вставленная в середину ЛЭП после
сортировки окажется в конце.
4. Сейчас я делаю это так:
а. Читаю всё в Delphi.
б. Проверяю расстояния от первой опоры до всех остальных и нахожу
ближайшую.
в. Проверяю расстояния от найденной ближайшей опоры до всех
остальных и нахожу следующую
... и т.д.
Сейчас я вижу 3 выхода:
- оставить всё как есть
- сделать из Delphi - кода UDF
- переписать всё на PSQL и сделать хранимую процедуру
Суть вопроса в следующем:
- нельзя ли этот алгоритм реализовать в виде запроса SELECT
- не будет ли этот SELECT компактнее ? Сейчас в Delphi-коде
400 строк
- не будет ли этот SELECT работать быстрее ?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378710
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyИзвините что из-за потребления освежающих напитков

- Завязывай с горячительными, а то и так совсем плохо....

kudatsky2. Все опоры пронумерованы, но номера не уникальны. Бывает
(иногда) что опоры ЛЭП нумеруют и с начала и с конца. Это
явная глупость, но она случилась в незапамятные времена и
исправить её уже нельзя.

3. Каждая опора имеет уникальный индекс в БД ...

(Выделение мну.)
Далее обсуждать тут неча.
Одно противоречит другому.
Этот бред не спишешь на НГ!
- Кто мешает "работать"(строить алгоритм) по "уникальным индексам" опор?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378711
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky- не будет ли этот SELECT работать быстрее ?
Не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378712
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyСейчас я вижу 3 выхода:

Попробую по доброму, но образно, объяснить глупость сего вопроса.
- Можно ли слетать на Луну?
- Ва-апче мона, но лично тебе - ни-зя!

Не хватает у тебя знаний, пониманий, образований и прочего для такой хотелки.
YouTube Video
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378787
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
I'm sory за фразу
"Каждая опора имеет уникальный индекс в БД"
Следовало бы написать
"Имеется первичный ключ"

Di_LIne > Судя по велеречивости и уровню шуток,
вы из-за новогоднего стола выбрались слишком поздно...

Dimitry Sibiryakov > Спасибо за внятный и категоричный ответ.
Но как такой запрос построить ?
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378789
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyНо как такой запрос построить ?
Вообще-то я сказал "обломись, запросом будет медленнее и сложнее"..
Да и какой "такой" запрос? Ты хочешь цепочку ближайших опор, начиная со стартовой?
Рекурсивный СТЕ тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378790
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky> Суть вопроса в следующем:
> - нельзя ли этот алгоритм реализовать в виде запроса SELECT
> - не будет ли этот SELECT компактнее ? Сейчас в Delphi-коде
> 400 строк
> - не будет ли этот SELECT работать быстрее ?

1. Скорее всего, можно.
2. Скорее всего, не будет.
3. Скорее всего, не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378805
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky,

по расстояниям - в ФБ 2.5 есть cte
см. пример 7 и далее
http://www.sqlbooks.ru/printarticle.aspx?part=02&file=sql200509
в ФБ все это работает
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378808
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо !
СТЕ обязательно попробую !
...
Рейтинг: 0 / 0
Географическая сортировка
    #39378865
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky4. Сейчас я делаю это так:
а. Читаю всё в Delphi.
б. Проверяю расстояния от первой опоры до всех остальных и нахожу
ближайшую.
в. Проверяю расстояния от найденной ближайшей опоры до всех
остальных и нахожу следующую
... и т.д.
Ну вот еще пара идей:
1. Выбирать с сортировкой по одной из координат. Все таки, эти опоры врядли образуют петли, скорее ближе к прямой линии?
2. Подсчитать один раз расстояние от каждой опоры к первой, далее выбирать с сортировкой по этому расстоянию.
3. Все-таки добавить в табличку какой-то порядковый номер, любым образом подсчитать его, проверить, если где-то что не так - подправить и пользоваться.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39380636
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько я в курсе ЛЭП бывают не только прямолинейные, особенно низковольтные.
И если будет нечто в виде острого угла или обход препятствия через которое нельзя пробросить кабель напрямую то не исключена ситуация когда ближайшая опора не является той на которую уходит кабель.
...
Рейтинг: 0 / 0
Географическая сортировка
    #39380724
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто из логики: кажется мне, что лучшим решением будет ввести нумерацию опор в рамках каждой линии в таблицу. Один раз просчитать её, проверить (легче всего даже визуально), и потом уже только актуализировать при вставках. Потому что в самом деле - ближайшая опора не обязательно будет следующей (острый угол).
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Географическая сортировка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]