Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Евгений ЛЕМ
Зарегистрирован: 13.07.2007 Сообщения: 9 Откуда: Тюмень
|
Добавлено: Вт Июл 17, 2007 1:50 pm Заголовок сообщения: SQL-запросы в MapInfo |
|
|
Уважаемые коллеги! Кого не затруднит, забросьте сюда пожалуйста любые примеры SQL-запросов для MapInfo, кому какие известны... Собираю для коллекции :wink:
Желательно с комментариями! Заранее, благодарствую!
Последний раз редактировалось: Евгений ЛЕМ (Чт Июл 19, 2007 11:58 am), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Евгений ЛЕМ
Зарегистрирован: 13.07.2007 Сообщения: 9 Откуда: Тюмень
|
Добавлено: Ср Июл 18, 2007 12:05 pm Заголовок сообщения: |
|
|
Ок! Если так, то тогда стоит следующая задача... Существуют два слоя: Горизонтали_l и Бергштрихи_l... Из слоя Горизонтали_l были удалены полинии с десятичными значениями высот (так надо для превращения карты из ДСП в ДОП), осталичь только горизонали с общими значениями через каждые двадцать метров... (60, 80, 100, 120 и т.д.). Теперь в слое Бергштрихи_l нужно вычистить все штрихи не прилегающие к горизонталям... Т.е. оставить те бергштрихи, которые лежат на оставшихся полиниях, а остальные как-то выбрать и удалить... Не будешь же их все в ручную по всей карте искать? :) Существует ли какой нибудь запрос по отому поводу, или может можно что-нибудь с буферными зонами придумать. Скажем, создать для оставшихся горизонталей буферную зону... и удалить все бергштрихи не лежашие в этой зоне (но как это ссделать?) |
|
Вернуться к началу |
|
|
Нестеров Валерий
Зарегистрирован: 21.03.2006 Сообщения: 492
|
Добавлено: Ср Июл 18, 2007 2:26 pm Заголовок сообщения: |
|
|
Да, наверно проще построить буферные зоны вокруг горизонталей (Только вначале их надо выделить, например запросом с указанием определенной длины линии или если в базе есть поле по которому можно отделить горизонтали от штрих линий. Еще лучше горизонтали разнести в отдельный от штрих линий слой, ). По отобранным горизонталям построить буфера, а по ним выбрать все штрих линии пересекающиеся с буферами. Инвертировать выборку и удалить. _________________ Жизнь прекрасна!i |
|
Вернуться к началу |
|
|
Евгений ЛЕМ
Зарегистрирован: 13.07.2007 Сообщения: 9 Откуда: Тюмень
|
Добавлено: Чт Июл 19, 2007 11:54 am Заголовок сообщения: |
|
|
Оки! Честно говоря два слоя уже существуют... Горизонтали_l - слой, где содержатся горизонтали, и Бергштрихи_l - слой где содержатся направляющие к горизонталям. Так вот кому интересно...
Построение буферной зоны вокруг горизонталей осуществляется следующим способом...
1. Выделяются все горизонтали.
2. Объекты > Буферные зоны... значение радиуса варьируется взависимости от масштаба карты. Применительно к бергштрихам (1мм. в масштабе карты)... скажем для 100.000 буферная зона составила 25 м. Хотя это не так важно, кому надо тот посчитает сам или опытным путем найдет нужный ему размер зоны! :)
3. Делаем выборку по SQL-запросу следующего содержания: из t.: Бергштрихи_l,Горизонтали_l; с условием: Бергштрихи_l Entirely Within Горизонтали_l... И УСЕ! Бергштрихи примыкающие к горизонталям и находящиеся в этой самой буферной зоне выбраны...
4. Далее... Запрос > Обратить выборку... Del... :)
5. Главное в начале при создании зоны при назначении данных... Впихнуть в поле "Тип" пометку, скажем, Буфер (ну, кому как удобно!)
6. Сделать SQL-запрос для таблицы Горизонтали_l, с условим Тип Like "%Буфер%"... Del... Уплотнить все таблицы...
Вот так!
Почти все тоже самое, что сказал Валерий, только более подробно. 8) |
|
Вернуться к началу |
|
|
|