MapInfo. Работа с запросами
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
MapInfo. Работа с запросами
Привет всем.
Нужна помощь в решение очень простой задачи. На рисунке есть несколько линий. В МапИнфо я могу посчитать длину каждой линии с помощью простого запроса (Query-->Select-->функция ObjectLen).
Но мне нужно посчитать длину красной ламаной линии. Как мне ето сделать с помощью Query-->Select--> ... или каким-то другим способом.
Спасибо
Нужна помощь в решение очень простой задачи. На рисунке есть несколько линий. В МапИнфо я могу посчитать длину каждой линии с помощью простого запроса (Query-->Select-->функция ObjectLen).
Но мне нужно посчитать длину красной ламаной линии. Как мне ето сделать с помощью Query-->Select--> ... или каким-то другим способом.
Спасибо
- Вложения
-
- рис.1
- Без имени-1.jpg (13.18 КБ) 9297 просмотров
-
bim2010
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
Re: MapInfo. Работа с запросами
но как мне применить ети алгоритмы(например Дейкстры) в MapInfo?
-
Boris
- Гуру
- Сообщения: 4233
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969097
- Откуда: Париж
Re: MapInfo. Работа с запросами
Уважаемые авторы, просьба, давайте полное описание задачи, а уважаемые отвечающие, имейте терпение получить полное описание задачи.
В таком обилии букв, совершенно не ясно:
а) это набор отрезков или единая ломаная?;
б) линия ФИЗИЧЕСКИ присутствует или это результат построений "на лету"? поскольку она ортогональна отрезку А;
в) если это набор отрезков, то имеют ли они сопряжение друг с другом?, пересечение?, примыкание?
В таком обилии букв, совершенно не ясно:
а) это набор отрезков или единая ломаная?;
б) линия ФИЗИЧЕСКИ присутствует или это результат построений "на лету"? поскольку она ортогональна отрезку А;
в) если это набор отрезков, то имеют ли они сопряжение друг с другом?, пересечение?, примыкание?
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
Re: MapInfo. Работа с запросами
это набор отрезков, что имеют точки соприкосновения друг с другом. линия физически не присутствует.
задача состоит в том чтоби посчитать длину линии которая состоит с частей других линий которие соприкосновлены между собой или пересикаются с помощью MapInfo
спасибо
задача состоит в том чтоби посчитать длину линии которая состоит с частей других линий которие соприкосновлены между собой или пересикаются с помощью MapInfo
спасибо
-
MYS
- Интересующийся
- Сообщения: 42
- Зарегистрирован: 02 ноя 2011, 09:11
- Репутация: 23
Re: MapInfo. Работа с запросами
Пуская ваши линии в файле q1. Рисуете полигон - в файл q2:
Делаете SQL запрос:
Select Sum(ObjectLen(obj, "km")) from q1, q2 where q1.Obj Entirely Within q2.Obj into Selection
Получаете суммарную длину отрезков, которые целиком находятся внутри полигона.
Select Sum(ObjectLen(obj, "km")) from q1, q2 where q1.Obj Entirely Within q2.Obj into Selection
Получаете суммарную длину отрезков, которые целиком находятся внутри полигона.
-
Boris
- Гуру
- Сообщения: 4233
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969097
- Откуда: Париж
Re: MapInfo. Работа с запросами
Если автор предыдущего ответу угадал вашу задачу, то мой ответ - мимо.
Теперь к задаче как я ее понимаю: это поиск пути из пункта А в пункт Б. Или ХЗ что. Не бывает таких задач просто найти длину - они должны быть откуда то куда то. Хотя бы и в постановке найти все пути изо всех начальных точек. Длиннее дольше, но алгоритм тот же, только применяется он много раз.
Для решения такой задачи исходные данные - 85% работы, потому как они должны ИДЕАЛЬНО примыкать друг к ругу и иметь общую вершину, даже в случае, когда это примыкание к длинной прямой. Без этого алгоритмы не будут работать. После это явно или не явно, если вы используете внешнюю библиотеку, строится граф и задача решается на нем. Без топологической корректности данных задача решения не имеет. Никаких чуть-чуть не сошлись или чуть-чуть пересеклись. Все такие ошибки в данных вычищаются ДО начала работы.
И мапинфо для это очень мало подходит. Во-первых, у нее убогие средства контроля топологии, но для задачи до 500 линий - сойдет. Во-вторых, в ней нет библиотек для расчета пути, а реализовывать его самому на мапбасике - это мучение. Хотя может кто то уже намучился и решение есть в сети?
Теперь к задаче как я ее понимаю: это поиск пути из пункта А в пункт Б. Или ХЗ что. Не бывает таких задач просто найти длину - они должны быть откуда то куда то. Хотя бы и в постановке найти все пути изо всех начальных точек. Длиннее дольше, но алгоритм тот же, только применяется он много раз.
Для решения такой задачи исходные данные - 85% работы, потому как они должны ИДЕАЛЬНО примыкать друг к ругу и иметь общую вершину, даже в случае, когда это примыкание к длинной прямой. Без этого алгоритмы не будут работать. После это явно или не явно, если вы используете внешнюю библиотеку, строится граф и задача решается на нем. Без топологической корректности данных задача решения не имеет. Никаких чуть-чуть не сошлись или чуть-чуть пересеклись. Все такие ошибки в данных вычищаются ДО начала работы.
И мапинфо для это очень мало подходит. Во-первых, у нее убогие средства контроля топологии, но для задачи до 500 линий - сойдет. Во-вторых, в ней нет библиотек для расчета пути, а реализовывать его самому на мапбасике - это мучение. Хотя может кто то уже намучился и решение есть в сети?
-
Александр Мурый
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: MapInfo. Работа с запросами
Например, есть RouteFinder (ссылку на эту контору уже давали выше).Boris писал(а):Во-вторых, в ней нет библиотек для расчета пути, а реализовывать его самому на мапбасике - это мучение. Хотя может кто то уже намучился и решение есть в сети?
Редактор материалов, модератор форума
-
bim2010
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: MapInfo. Работа с запросами
http://en.pudn.com/downloads44/sourceco ... 18_en.htmlВо-вторых, в ней нет библиотек для расчета пути, а реализовывать его самому на мапбасике - это мучение.
http://osdir.com/ml/mapinfo-l/2013-03/msg00210.html
http://www.ifp.uni-stuttgart.de/lehre/b ... n/kreutle/
http://esti-map.ru/product/chronomap
http://www.digimap.com/Prod_ChronoVia.html
Но ведь можно это реализовать на delphi или С#.
http://delphiworld.narod.ru/base/delphi ... info1.html
http://www.delphikingdom.com/asp/viewit ... alogid=561
https://code.google.com/archive/p/mapinfodotnetwrapper/
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
Re: MapInfo. Работа с запросами
MYS писал(а):Пуская ваши линии в файле q1. Рисуете полигон - в файл q2: Делаете SQL запрос:
Select Sum(ObjectLen(obj, "km")) from q1, q2 where q1.Obj Entirely Within q2.Obj into Selection
Получаете суммарную длину отрезков, которые целиком находятся внутри полигона.
Прошу прощение, с сложними запросами не очень хорошо знаком, видает ошибку, подскажите что делаю не так
- Вложения
-
- 2f.png (164.96 КБ) 8857 просмотров
-
- 1f.png (163.03 КБ) 8857 просмотров
-
Sibit
- Активный участник
- Сообщения: 216
- Зарегистрирован: 21 окт 2009, 13:29
- Репутация: 28
- Откуда: Новосибирск
Re: MapInfo. Работа с запросами
В поле Select перечисляются колонки в поле Condition - условия. Вы же все подряд туда напихали. Естественно, что мастер запросов ругается. Попробуйте начать с простых запросов, когда освоите - попробуйте ввести ваш запрос.
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
Re: MapInfo. Работа с запросами
напишыте пожалуйста как правильно ввести именно этот пример. спасибо
-
MYS
- Интересующийся
- Сообщения: 42
- Зарегистрирован: 02 ноя 2011, 09:11
- Репутация: 23
Re: MapInfo. Работа с запросами
Select Columns: Sum(ObjectLen(obj, "km"))
from Tables: q1, q2
where Condition: q1.Obj Entirely Within q2.Obj
into Table named: Selection
from Tables: q1, q2
where Condition: q1.Obj Entirely Within q2.Obj
into Table named: Selection
-
xtxskif
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -5
- Откуда: Lviv
- Контактная информация:
Re: MapInfo. Работа с запросами
спасибо
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей