Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
serg2008
Зарегистрирован: 17.11.2008 Сообщения: 6
|
Добавлено: Пн Ноя 17, 2008 11:25 am Заголовок сообщения: Создание тематической карты на mapbasic, подскажите |
|
|
Необходимо создать тематическую карту на mapbasic, есть следующая встроенная функция «создание тематического слоя методом отдельных значений»
Shade [ Window window_id ]
{ layer_id | layer_name }
With expr
[ Ignore value_to_ignore ]
Values const [ Pen... ] [ Line...] [ Brush... ] [ Symbol... ]
[ , const [ Pen... ] [ Line...] [ Brush... ] [ Symbol... ] ... ]
[ Default [ Pen... ] [ Brush... ] [ Symbol... ] ]
У меня эта функция будет иметь следующий вид:
Shade 1 With Имя колонки
Values
Значения
Далее необходимо ввести значения, проблема заключается в том, что колонка из которой будут браться значения будет каждый раз разная и как вытащить из колонки эти значения я себе не очень представляю.
Колонка будет содержать следующие значения (соответственно каждый раз новые значения):
1
1
1
2
2
3
3
3
5
5
А мне нужно получить
1
2
3
5
Может быть есть какое то простое решение (или не очень=)), подскажите пожалуйста. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пн Ноя 17, 2008 3:27 pm Заголовок сообщения: |
|
|
Сначала получили список уникальных значений из необходимого тебе поля запросом:
select Поле1 From Болота Group By Поле1
Потом перестрой тематику. |
|
Вернуться к началу |
|
|
serg2008
Зарегистрирован: 17.11.2008 Сообщения: 6
|
Добавлено: Пн Ноя 17, 2008 3:58 pm Заголовок сообщения: |
|
|
Куда будут записаны значения после выполнения запроса
select Поле1 From Болота Group By Поле1 ? |
|
Вернуться к началу |
|
|
serg2008
Зарегистрирован: 17.11.2008 Сообщения: 6
|
Добавлено: Пн Ноя 17, 2008 6:18 pm Заголовок сообщения: |
|
|
Еще вопросик. Каким образом записать данные из таблицы Selection в массив, потому как функция Shade данные из этой таблицы не воспринемает.
Пробовал записать в массив так:
Dim a() As Integer
a = Selection
не получается.
Здесь наверно через цикл надо, вобщем подскажите=). |
|
Вернуться к началу |
|
|
serg2008
Зарегистрирован: 17.11.2008 Сообщения: 6
|
Добавлено: Вт Ноя 18, 2008 12:41 pm Заголовок сообщения: |
|
|
Вообщем функция Shade воспринимает данные только в виде численных или строковых констант или выражений в виде списка, в котором не используется переменных, т.е. так
Shade 1 With Имя колонки Values
1,
2,
3,
5
Можно ли эти значения из таблицы запихнуть в программу в таком виде. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Вт Ноя 18, 2008 8:58 pm Заголовок сообщения: |
|
|
Сформируй команду Shade в строковую переменную, потом выполни ее через Run Command |
|
Вернуться к началу |
|
|
serg2008
Зарегистрирован: 17.11.2008 Сообщения: 6
|
Добавлено: Ср Ноя 19, 2008 10:51 am Заголовок сообщения: |
|
|
Может быть я не совсем корректно задал вопрос.
Shade 1 With Имя колонки Values Table
Table - таблица содержащая значения для построения тематической карты.
В таком виде Shade не работает, из таблицы значения он брать не хочет.
Пробовал так
cmd_string = "shade 1 with Колонка Values "
Run Command cmd_string + "Table"
тоже не получается
Как данные из таблицы преобразовать к виду, который будет воспринимать Shade? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пн Ноя 24, 2008 6:04 pm Заголовок сообщения: |
|
|
strvalues = "1,2,3,5" ' здесь я опущу алгоритм по которому ты сформируешь список значений
cmd_string = "shade 1 with Колонка Values "+strvalues
Run Command cmd_string |
|
Вернуться к началу |
|
|
|