QGIS привязать опоры к линиям в SQL
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
QGIS привязать опоры к линиям в SQL
Добрый день.
У нас есть в БД таблица опор, где указаны их координаты и наименования. И таблица линий в БД, построенных по некоторым опорам из той таблицы. Опоры у нас по базе никак не привязаны к линиям в БД, то есть мы видим принадлежность опор к линии только визуально на карте. Встал вопрос о нахождении опор у соотвествующей линии.
Я полагаю, что нужно сделать в таблице опор поле ИД_линии, по которому они будут сопоставляться с таблицей линий для быстрой выборки необходимых, но данных много и как это сделать оптимальнее и быстрее, подскажите?
Сам работаю с этими данными недавно, по хорошему надо было изначально заносить данные таким образом.
У нас есть в БД таблица опор, где указаны их координаты и наименования. И таблица линий в БД, построенных по некоторым опорам из той таблицы. Опоры у нас по базе никак не привязаны к линиям в БД, то есть мы видим принадлежность опор к линии только визуально на карте. Встал вопрос о нахождении опор у соотвествующей линии.
Я полагаю, что нужно сделать в таблице опор поле ИД_линии, по которому они будут сопоставляться с таблицей линий для быстрой выборки необходимых, но данных много и как это сделать оптимальнее и быстрее, подскажите?
Сам работаю с этими данными недавно, по хорошему надо было изначально заносить данные таким образом.
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: QGIS привязать опоры к линиям в SQL
Какая СУБД и не помешал бы пример данных
Я бы написал функцию которая искала столбы для линий используя Distance<0.1 и т. п.
Update: Почитайте, там есть функция "CreateTrkLine" - её можно адаптировать для ваших целей
Я бы написал функцию которая искала столбы для линий используя Distance<0.1 и т. п.
Update: Почитайте, там есть функция "CreateTrkLine" - её можно адаптировать для ваших целей
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
Я недавно работаю с ГИС и как писать функции и адаптировать ту, на которую вы мне дали ссылку пока не знаю. Посоветуйте что почитать для этого.
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: QGIS привязать опоры к линиям в SQL
Книжки по SQL, но тут важно - какая СУБД, потому что:
http://ru.wikipedia.org/wiki/SQLПроцедурные расширения
Поскольку SQL не является привычным процедурным языком программирования (то есть не предоставляет средств для построения циклов, ветвлений и т. д.), вводимые разными производителями расширения касались в первую очередь процедурных расширений. Это хранимые процедуры (stored procedures) и процедурные языки-«надстройки». Практически в каждой СУБД применяется свой процедурный язык, в частности, в Oracle Database используется PL/SQL (поддерживается также в DB2 и Timesten[en]), в Interbase и Firebird — PSQL, в DB2 — SQL PL[en], в Microsoft SQL Server и Adaptive Server Enterprise — Transact-SQL, в PostgreSQL — PL/pgSQL.
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: QGIS привязать опоры к линиям в SQL
Ваша задача является стандартной задачей ГИС: поиск принадлежности по пространственной близости. Если эти слова вам ничего не говорят и вы не знаете как их приложить к вашей задаче, то начните с простого - сообщите нам какой инструментарий у вас уже есть и который вы в состоянии начать использовать.
Кроме того, одного поля может и не хватить, т.к. я не в состоянии угадать, какие именно у вас опоры, но я видел опоры "ветвления" - они принадлежат нескольким веткам. Так же в жизни видел и опоры разного напряжения, сверху одна линия, ниже - другая.
Кроме того, одного поля может и не хватить, т.к. я не в состоянии угадать, какие именно у вас опоры, но я видел опоры "ветвления" - они принадлежат нескольким веткам. Так же в жизни видел и опоры разного напряжения, сверху одна линия, ниже - другая.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
Не понял какой инструментарий вы имеете ввиду, уточните, пожалуйста. Одного поля не хватит, вы правы, поэтому хочу сделать несколько полей, в которых будут указаны соответствующие ID линий если на одной опоре проходят несколько этих линий. Но для моей задачи нужно хотя бы привязать опору к одной линии , тем более что опор, через которые проходит одновременно несколько линий, немного.Boris писал(а):Ваша задача является стандартной задачей ГИС: поиск принадлежности по пространственной близости. Если эти слова вам ничего не говорят и вы не знаете как их приложить к вашей задаче, то начните с простого - сообщите нам какой инструментарий у вас уже есть и который вы в состоянии начать использовать.
Кроме того, одного поля может и не хватить, т.к. я не в состоянии угадать, какие именно у вас опоры, но я видел опоры "ветвления" - они принадлежат нескольким веткам. Так же в жизни видел и опоры разного напряжения, сверху одна линия, ниже - другая.
Если писать функцию, которая будет искать ближайшие опоры у линии и привязывать их, то в каком направлении мне нужно двигаться, с чего начать?
Используется MySQL и QGIS, пример БД во вложении
- Вложения
-
Пример БД.rar
- Пример БД
- (12.22 КБ) 235 скачиваний
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: QGIS привязать опоры к линиям в SQL
Александр Сергеевич, думаю данного примера БД не достаточно, чтобы попытаться решить вашу задачу. Не увидел в вашем примере координат для линий.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
Скопировал из QGIS другие данныеlam писал(а):Александр Сергеевич, думаю данного примера БД не достаточно, чтобы попытаться решить вашу задачу. Не увидел в вашем примере координат для линий.
- Вложения
-
Пример БД.rar
- (8.11 КБ) 272 скачивания
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: QGIS привязать опоры к линиям в SQL
Выложите фрагмент шейп-слоев опор и линий в том месте, где несколько линий проходят через одну опору.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
Архив во вложенииlam писал(а):Выложите фрагмент шейп-слоев опор и линий в том месте, где несколько линий проходят через одну опору.
- Вложения
-
Пример.rar
- (3.91 КБ) 269 скачиваний
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: QGIS привязать опоры к линиям в SQL
Линии строились по этим точкам опор, если да, то почему узлы не совпадают (см.вложение)?
- Вложения
-
- p1.jpg (10.45 КБ) 9457 просмотров
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
Точки не совпадают, т.к. потом вручную они перемещались, но этим уже не я занимался.
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: QGIS привязать опоры к линиям в SQL
Я бы присвоил названия опорам по принципу ближайшего расположения линии к опоре.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 19 май 2014, 10:44
- Репутация: 2
Re: QGIS привязать опоры к линиям в SQL
я бы тоже, но вбивать ручками больше 100 тысяч опор не хочетсяlam писал(а):Я бы присвоил названия опорам по принципу ближайшего расположения линии к опоре.
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: QGIS привязать опоры к линиям в SQL
зачем же ручками, инструмент Spatial Join в ArcGis, например.Alex_mk писал(а):я бы тоже, но вбивать ручками больше 100 тысяч опор не хочетсяlam писал(а):Я бы присвоил названия опорам по принципу ближайшего расположения линии к опоре.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя